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