# @(#) list changes to udpxy from build to build # # Copyright 2008-2012 Pavel V. Cherenkov (pcherenkov@gmail.com) # # This file is part of udpxy. # # udpxy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # udpxy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with udpxy. If not, see . # Build 14 (2-Jan-2008): (*) shutdown command removed Build 15-18 (7-Jan-2008): (*) interface names get translated into IPv4 addresses (*) lock-enabled pidfile support added Build 19 (9-Jan-2008): (*) 'lean' target added to makefile (*) -n (nice increment) option added Build 20 (9-Jan-2008): (*) default settings changed for various options Build 21-22 (16-Jan-2008): (*) Web GUI refinements (new design, 'restart' button added to status page) (*) mipsel-linux-uclibc-gcc support added to wl500-specific makefile (*) generation of wl500-specific source archive Build 23 (18-Jan-2008): (*) Usage examples added to status page and command-line output (*) Copyright notice added to status page and usage (*) make for wl500 will not strip; no default compiler given Build 24-30 (27-Feb-2008) (*) support for RTP over MPEG-TS added Build 31 (28-Feb-2008) (*) bug-fix: lean target compile error corrected (*) release target for wl500 will not strip the executable Build 32 (29-Feb-2008) (*) throughput statistics displayed on status page (*) log messages are timestamp-prepended now Build 33 (23-Mar-2008) (*) udpxrec application added to record traffic into file (*) miliseconds added to log timestamps Build 34 (23-Mar-2008) (*) Bug fix: core dumped if no pidfile specified Build 35 (24-Mar-2008) (*) Bug fix: udpxy terminates with unlink error when run as a daemon Build 36 (25-Mar-2008) (*) Bug fix: udpxrec: specifying a small buffer (-B) produces assert or SEGV (*) Bug fix: udpxrec: start/end-recording can be in the past (*) udpxy made accept buffer in bytes by default (was in Kb) (*) udpxrec will run as daemon if started under root (*) Bug fix: udpxy, udpxrec will not run in bkg w/o log spec (*) udpxrec will require pidfile to run as daemon (root in bkg) Build 37 (27-Mar-2008) (*) bug fixes - maintenance build Build 38 (11-Apr-2008) (*) -H parameter added to set max time data can be held in buffer (*) socket read timeout is configurable through $UDPXY_RCV_TMOUT (env) (*) migrated to unified makefile for all supported compilers (*) added dependency-generation support thru mkdep (*) support added for suncc (Sun Studio 12), icc (Intel C), HP ANSI C compiler (hppa20w, hppa20, hppa11 modes) Build 39 (21-May-2008) (*) resolved issue of WMP refusing to connect to udpxy (*) added pid to log output Version 1.0 'Chipmunk' -------------------------- Build 1 (4-June-2008) (*) same as Build 39 Build 2 (6-June-2008) (*) Rolled back WMP-compatibility changes Build 6 (12-August-2008) (*) Fixed: udpxrec would not write beyond 2Gb; -M option would not accept >2Gb of size Build 7 (20-September-2008) (*) Fixed: multicast-resubscribe default period of zero seconds would cause udpxy to resubscribe on every iteration; logic changed to make udpxy re-subscribe only on setting's value >0 (0 means 'do NOT' re-subscribe) Build 8 (3-December-2008) (*) SIGPIPE is ignored now (was handled as a signal to quit) (*) Full version info is displayed on exit (*) PAUSE support (non-blocking receive socket) can be disabled (*) DHOLD_TIMEOUT (default max time to buffer data before flush) set to 4 seconds Build 9 (17-February-2009) (*) documentation (in Russian) added (*) default buffer size changed to 4K, was 64K (*) minimal send-socket buffer length set to 32K (was previously set to data buffer size) (*) UDPXY_SENDBUF_LEN environment variable can be set to control send-socket buffer size Build 10 (24-February-2009) (*) read-socket buffer left untouched if bigger than suggested buffer value based on -R and -B parameters and the minimum buffer size - currently 32K - for send socket (*) UDPXY_SENDBUF_LEN replaced by UDPXREC_SOCKBUF_LEN: that will be the minimum size for both read- and send-socket buffers (ignored still if set to less than 32K) (*) send-socket buffer size will be enlarged to the size of read-socket bufffer size (if currently smaller) Build 11 (25-February-2009) (*) UDPXY_DSOCKBUF_NOSYNC set to 1 will leave send-socket buffer size unaltered (*) UDPXY_SSOCKBUF_NOSYNC set to 1 will leave read (mcast)-socket buffer size unaltered (*) default buffer size (-B) changed to 2K, was 4K (*) default value for -R (messages to buffer) set to 1 (*) minimum (advisory) socket buffer size set to 64K, was 32K (*) Fixed: assert when processing RTP-TS with -R 1 (*) Fixed: if2addr() not working under 64-bit linux; -a and -m options would not accept ifc names (*) Fixed: quit flag value cast incorrectly under 64-bit linux (*) CFLAGS variable may used for additional compiler options (CFLAGS='-m32' will force 32-bit build, for instance) (*) NOP statements in udpxy.c, udpxrec.c updated to compile w/o warnings under gcc 3.2.3 (*) util/mkipk.sh script added to create IPKG packages Build 12 (9-April-2009) (*) ported to compile under FreeBSD 7.1 (32-bit) Build 13 (10-April-2009) (*) signedness comparison warnings eliminated Build 14 (23-Jul-2009) (*) ported to compile under FreeBSD 5.5 (32-bit) Build 15 (XX-Mar-2010) (*) FIXED: not compiling with -O2/O3 flags under gcc (select additional options in USER_OPT env variable) (*) FIXED: would not allow running more than one udpxy daemon Build 16 (21-Mar-2010) (*) FIXED: hanging when specifying network interface by name Build 17 (27-Jun-2010) (*) FIXED: server terminates on ECONNABORTED from accept() (*) Dynamic memory allocation for HTTP status pages implemented - will not truncate pages Build 18 (9-Jan-2011) (*) IP/port separator in HTTP request to udpxy can be any of those: ":%~+-^" Build 19 (9-Jan-2011) (*) MAX limit of clients (-c option) upped to 5,000 (five thousand) Build 20 (18-Jun-2011) (*) FIXED: player sends last request's traffic to any client with invalid request; (*) FIXED: unsupported HTTP requests (those that the parser does not handle) are denied [ID: 3294265] (*) Added UDPXY_SREAD_TMOUT, UDPXY_SWRITE_TMOUT evn parameters to set read/write timeouts on HTTP server's socket; (*) Added UDPXY_HTTP200_FTR_LN, UDPXY_HTTP200_FTR_FILE env parameters to allow appending 1 line or contents of a text file to HTTP 200 (successful request processing) response; (*) Added Content-type entry to HTTP response; (*) Added conditional compilation of udpxrec - use NO_UDPXREC=yes make [mode] to *NOT* build udpxrec into the udpxy binary Build 21 (25-Nov-2011) (*) FIXED: defunct processes appear at a high volume of requests; (*) FIXED: ECONNRESET, ECONNABORTED and EPROTO in accept cause server to exit prematurely; (*) FIXED: accept() handled only one request per iteration (select notification); (*) Low watermark enforced for incoming requests; Patch 1 (13-Dec-2011) (*) FIXED: "variable set but not used" warnings under gcc 4.6.1 (*) FIXED: conflict with dirent.h (DT_UNKNOWN) resolved; Patch 2 (20-Dec-2011) (*) FIXED: misc build errors and inconsistencies Patch 4 (9-Feb-2012) (*) FIXED: SIGSEGV caused by dpkt.c:upxfmt_NAME[] having less members than indexes used (RAW was missing); (*) rdebug (release with debug symbols), ldebug (lean with debug symbols) targets added; Build 22 was skipped to avoid confusion with patches and betas pulled off github; Build 23 (3-Jul-2012) (*) HTTP response lines are now separated by CRLF (not just LF), as per RFC2616; (*) SO_REUSEPORT used (where available) to allow more that one client to subscribe to the same channel on BSD-derived systems; (*) optimization patches by Alexey Suhinin integrated (tcp_nodelay, pause_timeout, mstream_type); (*) sloop.c uses syscall.h & -DUSE_SELECT to alternate between select(2)- and pselect(2)-based implementations of server loop (*) FIXED: idle timeout displayed incorrectly in select(2)-based version; (*) HTTP response includes 'Server:' clause; Patch 1 (31-Aug-2012) (*) Added the capability to capture the HTTP variables submitted via URI beyond command/options Example: http://hostname:port/udp/mcaddr:mcport?aa=1&bb=2&cc=3 - '?aa=1&bb=2&cc=3' part is now preserved (for each client) and displayed in status page as part of Destination column; (*) Added README.russian; Patch 2 (14-Oct-2012) (*) Static linking enabled through LDFLAGS=-static (as a prefix to make); (*) EPIPE and other 'not really errors' should not go to syslog (time-outs still WILL); Patch 3 (18-Nov-2012) (*) Makefile changed towards better GNU compatibility: added $PREFIX, $DESTDIR, $CPPFLAGS; dist & install-strip targets; (*) English-language udpxy.1, udpxrec.1 man pages added; (*) icc, Sun C & HP-UX C compiler support dropped (Makefile); Patch 4 (9-Dec-2012) (*) manpage & Makefile corrections applied (integrated patches from Alex Z (ad_user)); Patch 5 (13-Dec-2012) (*) Makefile corrections (purged deprecated options & variables); Patch 6 (23-Dec-2012) (*) report_status() adjusts report-buffer size for client tails; (*) attempt to fix strict-aliasing compiler warnings in sock_info(); (*) optimizing: removed difftime() as redundant on a POSIX system (may affect non-POSIX ports). Patch 7 (24-Dec-2012) (*) more work on report_status() to prevent memory exhaustion when using 'tails' in requests; Patch 8 (5-Jan-2013) (*) UDPXY_CONTENT_TYPE - can specify custom HTTP Content-Type. (*) FIXED: more memory for report header & items; (*) Socket is made (temporarily) blocking when sending report results; # __EOF__