1# @(#) list changes to udpxy from build to build 2# 3# Copyright 2008-2012 Pavel V. Cherenkov (pcherenkov@gmail.com) 4# 5# This file is part of udpxy. 6# 7# udpxy is free software: you can redistribute it and/or modify 8# it under the terms of the GNU General Public License as published by 9# the Free Software Foundation, either version 3 of the License, or 10# (at your option) any later version. 11# 12# udpxy is distributed in the hope that it will be useful, 13# but WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15# GNU General Public License for more details. 16# 17# You should have received a copy of the GNU General Public License 18# along with udpxy. If not, see <http://www.gnu.org/licenses/>. 19# 20 21Build 14 (2-Jan-2008): 22 (*) shutdown command removed 23 24Build 15-18 (7-Jan-2008): 25 (*) interface names get translated into IPv4 addresses 26 (*) lock-enabled pidfile support added 27 28Build 19 (9-Jan-2008): 29 (*) 'lean' target added to makefile 30 (*) -n (nice increment) option added 31 32Build 20 (9-Jan-2008): 33 (*) default settings changed for various options 34 35Build 21-22 (16-Jan-2008): 36 (*) Web GUI refinements (new design, 'restart' button added to status page) 37 (*) mipsel-linux-uclibc-gcc support added to wl500-specific makefile 38 (*) generation of wl500-specific source archive 39 40Build 23 (18-Jan-2008): 41 (*) Usage examples added to status page and command-line output 42 (*) Copyright notice added to status page and usage 43 (*) make for wl500 will not strip; no default compiler given 44 45Build 24-30 (27-Feb-2008) 46 (*) support for RTP over MPEG-TS added 47 48Build 31 (28-Feb-2008) 49 (*) bug-fix: lean target compile error corrected 50 (*) release target for wl500 will not strip the executable 51 52Build 32 (29-Feb-2008) 53 (*) throughput statistics displayed on status page 54 (*) log messages are timestamp-prepended now 55 56Build 33 (23-Mar-2008) 57 (*) udpxrec application added to record traffic into file 58 (*) miliseconds added to log timestamps 59 60Build 34 (23-Mar-2008) 61 (*) Bug fix: core dumped if no pidfile specified 62 63Build 35 (24-Mar-2008) 64 (*) Bug fix: udpxy terminates with unlink error when run as a daemon 65 66Build 36 (25-Mar-2008) 67 (*) Bug fix: udpxrec: specifying a small buffer (-B) produces assert or SEGV 68 (*) Bug fix: udpxrec: start/end-recording can be in the past 69 (*) udpxy made accept buffer in bytes by default (was in Kb) 70 (*) udpxrec will run as daemon if started under root 71 (*) Bug fix: udpxy, udpxrec will not run in bkg w/o log spec 72 (*) udpxrec will require pidfile to run as daemon (root in bkg) 73 74Build 37 (27-Mar-2008) 75 (*) bug fixes - maintenance build 76 77Build 38 (11-Apr-2008) 78 (*) -H parameter added to set max time data can be held in buffer 79 (*) socket read timeout is configurable through $UDPXY_RCV_TMOUT (env) 80 (*) migrated to unified makefile for all supported compilers 81 (*) added dependency-generation support thru mkdep 82 (*) support added for suncc (Sun Studio 12), icc (Intel C), HP ANSI C compiler (hppa20w, hppa20, hppa11 modes) 83 84Build 39 (21-May-2008) 85 (*) resolved issue of WMP refusing to connect to udpxy 86 (*) added pid to log output 87 88Version 1.0 'Chipmunk' 89-------------------------- 90 91Build 1 (4-June-2008) 92 (*) same as Build 39 93 94Build 2 (6-June-2008) 95 (*) Rolled back WMP-compatibility changes 96 97Build 6 (12-August-2008) 98 (*) Fixed: udpxrec would not write beyond 2Gb; -M option would not accept >2Gb of size 99 100Build 7 (20-September-2008) 101 (*) Fixed: multicast-resubscribe default period of zero seconds would cause udpxy to resubscribe 102 on every iteration; logic changed to make udpxy re-subscribe only on setting's value >0 103 (0 means 'do NOT' re-subscribe) 104 105Build 8 (3-December-2008) 106 (*) SIGPIPE is ignored now (was handled as a signal to quit) 107 (*) Full version info is displayed on exit 108 (*) PAUSE support (non-blocking receive socket) can be disabled 109 (*) DHOLD_TIMEOUT (default max time to buffer data before flush) set to 4 seconds 110 111Build 9 (17-February-2009) 112 (*) documentation (in Russian) added 113 (*) default buffer size changed to 4K, was 64K 114 (*) minimal send-socket buffer length set to 32K (was previously set to data buffer size) 115 (*) UDPXY_SENDBUF_LEN environment variable can be set to control send-socket buffer size 116 117Build 10 (24-February-2009) 118 (*) read-socket buffer left untouched if bigger than suggested buffer value based on -R 119 and -B parameters and the minimum buffer size - currently 32K - for send socket 120 (*) UDPXY_SENDBUF_LEN replaced by UDPXREC_SOCKBUF_LEN: that will be the minimum size 121 for both read- and send-socket buffers (ignored still if set to less than 32K) 122 (*) send-socket buffer size will be enlarged to the size of read-socket bufffer size 123 (if currently smaller) 124 125Build 11 (25-February-2009) 126 (*) UDPXY_DSOCKBUF_NOSYNC set to 1 will leave send-socket buffer size unaltered 127 (*) UDPXY_SSOCKBUF_NOSYNC set to 1 will leave read (mcast)-socket buffer size unaltered 128 (*) default buffer size (-B) changed to 2K, was 4K 129 (*) default value for -R (messages to buffer) set to 1 130 (*) minimum (advisory) socket buffer size set to 64K, was 32K 131 (*) Fixed: assert when processing RTP-TS with -R 1 132 (*) Fixed: if2addr() not working under 64-bit linux; -a and -m options would not accept ifc names 133 (*) Fixed: quit flag value cast incorrectly under 64-bit linux 134 (*) CFLAGS variable may used for additional compiler options (CFLAGS='-m32' will force 32-bit build, for instance) 135 (*) NOP statements in udpxy.c, udpxrec.c updated to compile w/o warnings under gcc 3.2.3 136 (*) util/mkipk.sh script added to create IPKG packages 137 138Build 12 (9-April-2009) 139 (*) ported to compile under FreeBSD 7.1 (32-bit) 140 141Build 13 (10-April-2009) 142 (*) signedness comparison warnings eliminated 143 144Build 14 (23-Jul-2009) 145 (*) ported to compile under FreeBSD 5.5 (32-bit) 146 147Build 15 (XX-Mar-2010) 148 (*) FIXED: not compiling with -O2/O3 flags under gcc (select additional options in USER_OPT env variable) 149 (*) FIXED: would not allow running more than one udpxy daemon 150 151Build 16 (21-Mar-2010) 152 (*) FIXED: hanging when specifying network interface by name 153 154Build 17 (27-Jun-2010) 155 (*) FIXED: server terminates on ECONNABORTED from accept() 156 (*) Dynamic memory allocation for HTTP status pages implemented - will not truncate pages 157 158Build 18 (9-Jan-2011) 159 (*) IP/port separator in HTTP request to udpxy can be any of those: ":%~+-^" 160 161Build 19 (9-Jan-2011) 162 (*) MAX limit of clients (-c option) upped to 5,000 (five thousand) 163 164Build 20 (18-Jun-2011) 165 (*) FIXED: player sends last request's traffic to any client with invalid request; 166 (*) FIXED: unsupported HTTP requests (those that the parser does not handle) are denied [ID: 3294265] 167 168 (*) Added UDPXY_SREAD_TMOUT, UDPXY_SWRITE_TMOUT evn parameters to set read/write timeouts on HTTP server's socket; 169 (*) Added UDPXY_HTTP200_FTR_LN, UDPXY_HTTP200_FTR_FILE env parameters to allow appending 1 line or contents 170 of a text file to HTTP 200 (successful request processing) response; 171 (*) Added Content-type entry to HTTP response; 172 (*) Added conditional compilation of udpxrec - use NO_UDPXREC=yes make [mode] to *NOT* build udpxrec into the udpxy 173 binary 174 175Build 21 (25-Nov-2011) 176 (*) FIXED: defunct processes appear at a high volume of requests; 177 (*) FIXED: ECONNRESET, ECONNABORTED and EPROTO in accept cause server to exit prematurely; 178 (*) FIXED: accept() handled only one request per iteration (select notification); 179 (*) Low watermark enforced for incoming requests; 180 181Patch 1 (13-Dec-2011) 182 (*) FIXED: "variable set but not used" warnings under gcc 4.6.1 183 (*) FIXED: conflict with dirent.h (DT_UNKNOWN) resolved; 184 185Patch 2 (20-Dec-2011) 186 (*) FIXED: misc build errors and inconsistencies 187 188Patch 4 (9-Feb-2012) 189 (*) FIXED: SIGSEGV caused by dpkt.c:upxfmt_NAME[] having less members than indexes used (RAW was missing); 190 (*) rdebug (release with debug symbols), ldebug (lean with debug symbols) targets added; 191 192Build 22 was skipped to avoid confusion with patches and betas pulled off github; 193 194Build 23 (3-Jul-2012) 195 (*) HTTP response lines are now separated by CRLF (not just LF), as per RFC2616; 196 (*) SO_REUSEPORT used (where available) to allow more that one client 197 to subscribe to the same channel on BSD-derived systems; 198 (*) optimization patches by Alexey Suhinin integrated (tcp_nodelay, pause_timeout, mstream_type); 199 (*) sloop.c uses syscall.h & -DUSE_SELECT to alternate between select(2)- and pselect(2)-based implementations of server loop 200 (*) FIXED: idle timeout displayed incorrectly in select(2)-based version; 201 (*) HTTP response includes 'Server:' clause; 202 203Patch 1 (31-Aug-2012) 204 (*) Added the capability to capture the HTTP variables submitted via URI beyond command/options 205 Example: http://hostname:port/udp/mcaddr:mcport?aa=1&bb=2&cc=3 - '?aa=1&bb=2&cc=3' part is now 206 preserved (for each client) and displayed in status page as part of Destination column; 207 (*) Added README.russian; 208 209Patch 2 (14-Oct-2012) 210 (*) Static linking enabled through LDFLAGS=-static (as a prefix to make); 211 (*) EPIPE and other 'not really errors' should not go to syslog (time-outs still WILL); 212 213Patch 3 (18-Nov-2012) 214 (*) Makefile changed towards better GNU compatibility: added $PREFIX, $DESTDIR, $CPPFLAGS; dist & install-strip targets; 215 (*) English-language udpxy.1, udpxrec.1 man pages added; 216 (*) icc, Sun C & HP-UX C compiler support dropped (Makefile); 217 218Patch 4 (9-Dec-2012) 219 (*) manpage & Makefile corrections applied (integrated patches from Alex Z (ad_user)); 220Patch 5 (13-Dec-2012) 221 (*) Makefile corrections (purged deprecated options & variables); 222Patch 6 (23-Dec-2012) 223 (*) report_status() adjusts report-buffer size for client tails; 224 (*) attempt to fix strict-aliasing compiler warnings in sock_info(); 225 (*) optimizing: removed difftime() as redundant on a POSIX system (may affect non-POSIX ports). 226Patch 7 (24-Dec-2012) 227 (*) more work on report_status() to prevent memory exhaustion when using 'tails' in requests; 228Patch 8 (5-Jan-2013) 229 (*) UDPXY_CONTENT_TYPE - can specify custom HTTP Content-Type. 230 (*) FIXED: more memory for report header & items; 231 (*) Socket is made (temporarily) blocking when sending report results; 232 233# __EOF__ 234 235