4.12.2007 Daniel Mealha Cabrita version 2.4.2 http.c: Fixed broken user pipe detection while transferring unprocessed stream-to-stream. ziproxy.c log.*: When server breaks the connection, ziproxy immediately interrupted the transfer at client's side. Now it will send the remaining data to the client. The previous behavior could bring premature disconnections. text.c: Content-Length wasn't being removed while stream-to-stream gunzipping. Fixed. ziproxy.c log.c: Ziproxy crashed when AccessLogFileName wasn't defined. Fixed. This bug appeared in 2.4.1 version. ziproxy.c log.*: Now (debug) log provides each line with the PID of the specific process servicing the specific HTTP request. Previously it merely provided the base Ziproxy process, what is pretty much useless in daemon mode and made sense only while using (x)inetd, or in pre-1.9.0 versions. http.c: Stream-to-stream (no further processing) routines were rewritten and are >100x times faster now. This may bring noticeable difference in cases where outgoing data is something like 10 Mbps or more. Added access log flag 'W'. 22.11.2007 Daniel Mealha Cabrita version 2.4.1 cfgfile.* netd.c ziproxy.*: New option: BindOutgoing cfgfile.* http.c: New option: AccessLogUserPOV ziproxy.conf: Added new xml types as (gzip) compressible. Added 'pdf' and 'tar' as compressible application types. gzpipe.c ziproxy.c http.* log.*: Added access log support for interrupted/timeouted transfers. Added access log flags 'Z' (timeout) and 'B' (broken pipe, interrupted) image.c: When decompressing jpeg incomplete files, ziproxy process crashes (busy loops) until it timeouts. Fixed. 28.10.2007 Daniel Mealha Cabrita version 2.4.0 http.*: If data is > MaxSize, junk was appended to the beginning of it. Fixed. Ziproxy tried to load into memory, data types which are not supposed to be processed. Fixed. text.c: Trivial overflow problem which gave false positives for "gunzip threshold limit". Fixed. qparser.c: When config file was essentially empty (only comments or spaces) ziproxy issues this error: ERROR: Invalid parameter --> Fixed. gzpipe.c: Fixed intermitent bug when gzip-streaming pages (random numbers appeared in the body of the page, mixed with the content). This bug appeared in 2.3.5_BETA. cfgfile.* http.c gzpipe.*: New option: MinUncompressedGzipStreamEval htmlopt.* http.c fstring.* cdetect.*: Added support for javascript files as text/javascript. Now tests whether text/html is indeed html (not always the case, may be JS, CSS...) Misc fixes to html opt (support more sites now). 25.10.2007 Daniel Mealha Cabrita version 2.3.5_BETA http.c: Broken gzip were not being uncompressed (that's ok) but Ziproxy attempted to recompress those again. Fixed. http.c: Requests were broken when in transparent proxy mode _and_ the client explicited the port. Fixed. various_files: Fixed missing includes and certain inconsistencies in the source code. Removed unused variables. Fixed (hopefully) all pointer compares in order to use NULL instead of 0. Those potentially preventing compilation in certain systems. qparser.*: Replaced libconfuse with qparser, thus that library is no longer used. Fixes x86_64 (and possibly other arches) parsing problems. configure.in: Now check all headers used in source code. http.* cfgfile.*: New option: WA_MSIE_FriendlyErrMsgs Misc bug fixes and code cleanup. MinTextStream was using the decompressed size, what is senseless if the data came pre-compressed by the remote server. Fixed. http.*: Added (limited) support for partial data download (Content-Range, Range). "multipart/byteranges" mode works aswell (as side effect), and that's a BUG. This must be disabled later since it can build corrupt data at the user's end (when dealing with jpg/gif/png and htmlopt-processed files). http.* text.* gzpipe.*: Added gzip/gunzip stream-to-stream support. Appliable when no other optimizations are requested/viable. Now logs aloways report gzipped transfers new sizes (previously, streaming cases were reported as "-1"). A number of bugs fixed related to incoming gzipped data. cfgfile.c ziproxy.conf: Misc updates/improvements to the example config file. Changed some defaults to more sensible values. 11.9.2007 Daniel Mealha Cabrita version 2.3.0 ziproxy.c: Alternative network code for IPv4-only OSes was completely broken. Fixed. htmlopt.c: Broken commented CDATA in JS processing. Some pages using htmlopt were rendered broken. Fixed. http.c, cfgfile.*: New option: AllowMethodCONNECT http.c: (default) error messages now contain some meaningful info at the footer of the page, like date and hostname. http.* text.* cfgfile.*: Ziproxy now supports internal processing of gzipped data. Now also possible to always advertise gzip capability, no longer being dependant on the http client. New option: OverrideAcceptEncoding New option: MaxUncompressedGzipRatio http.c cfgfile.*: New option: RedefineUserAgent http.c cfgfile.*: New option: DecompressIncomingGzipData Many fixes/changes in the HTTP processing routines. htmlopt.c: Changed quirky-linebreak processing to be more like mainstream browsers, for more correct rendering of certain broken pages. htmlopt.* cfgfile.* http.c: Fixed bug in HTMLopt which caused losing formatation in textarea. New option: ProcessHTML_TEXTAREA htmlopt.c: Fixed bugs related to javascript processing. 8.5.2007 Daniel Mealha Cabrita version 2.2.2 http.h: Some files with too many headers were not loadable (typically some wikipedia.org pictures). Fixed. htmlopt.c: Fixed commented (escaped, in a way) CDATA XML tag which was being removed. http.c: Fixed trailing trash in html/javascript/css when code optimization is enabled. ziproxylogtool.c: Added internal caching (about 4.5x faster in large logs now) Makefile.am: README.tools was left behind. Added into. 18.12.2006 Daniel Mealha Cabrita version 2.2.1 cfgfile.c: Fixed compilation issues with FreeBSD (possibly affecting other OSes aswell) ChangeLog: Removed duplicated entry from 17.12.2006 CREDITS: Some people were left out, fixed. 17.12.2006 Daniel Mealha Cabrita version 2.2.0 cfgfile.*, ziproxy.c: New option: ConventionalProxy http.c: Fixed: standalone javascript files were not being compressed, even when GZip=true cfgfile.c: Fixed: AllowLookChange default was not false as it should be. cfgfile.*, netd.c: New option: Address cfgfile.c: New option: Nameservers netd.c: Ziproxy collected zombie childs only when a new incoming connection arrived, what is not very elegant when Ziproxy is in idle state and one type something like $ ps xa | grep ziproxy Fixed. http.c: Fixed: Ziproxy handled incorrectly 30x HTTP responses. Certain sites were inaccessible. tools/*: Added Ziproxy Log Tools. 2.9.2006 Daniel Mealha Cabrita version 2.1.1 text.c: Fixed a compilation bug when Jasper (JP2K) is enabled. (This bug was introduced in version 2.1.0) cfgfile.c: Changed the default behavior of ModifySuffixes (when Ziproxy is compiled with Jasper) to FALSE, in order to avoid more problems. (Modify Suffixes is _very_ broken). 26.7.2006 Daniel Mealha Cabrita version 2.1.0 htmlopt.*: EXPERIMENTAL FEATURE: Inserted htmlopt into the code, a html/css/js optimizer meant to reduce file size even further prior to gzip compression. cfgfile.*: Added options: ProcessHTML, ProcessCSS, ProcessJS and ProcessHTML_* http.c: Fixed a bug which made PreemptNameRes to scan images too, wasting cpu time. Also fixed a bug which could potentially lock the ziproxy process while trying to compress non-pictures as pictures. 29.6.2006 Daniel Mealha Cabrita version 2.0.0 (final) Same as 1.9.1, it seems good enough for the major version bump. 28.6.2006 Daniel Mealha Cabrita version 1.9.1 (aka 2.0.0 beta 2) http.c: Fixed a bug which prevented the gzip compression of short-named types (such as pdf and rtf). 18.5.2006 Daniel Mealha Cabrita version 1.9.0 (aka 2.0.0 beta) ziproxy.c netd.c: Moved log handlers to netd.c for speedup in daemon mode. netd.c: Wrote proper daemonize code. ziproxy.spec: Some minor fixes. xinetd/ziproxy: Updated for the new invocation procedure. init.d/ziproxy: Added support for a properly demonized Ziproxy. 17.5.2006 Daniel Mealha Cabrita ziproxy.c http.* cfgfile.*: Finished access log coding. Added a new config option: AccessLogFileName 16.5.2006 Daniel Mealha Cabrita ziproxy.conf ziproxy.* netd.c cfgfile.* http.* log.* text.c: Access log support (FIXME: output only to stderr for now) Added a new config option: MinTextStream 13.5.2006 Daniel Mealha Cabrita ziproxy.h ziproxy.c http.c http.h cfgfile.c cfgfile.h ziproxy.conf: Added support for transparent proxy (via the TransparentProxy option) cfgfile.c cfgfile.h: Changed default setting of AllowLookChange and PreemptNameResBC to false netd.c: fixed small code glitch 12.5.2006 Daniel Mealha Cabrita netd.c: New code for command line parameters parsing. New options, other ones are changed. 7.5.2006 Daniel Mealha Cabrita started version 1.9.0 development ziproxy.h ziproxy.c netd.c: Obsoleted netd. ziproxy and netd integrated into ziproxy. Both modes of operation still supported. (For 'netd', call 'ziproxy -d' instead) "WhereZiproxy" option is now obsolete. cfgfile.c: Changed default config file location to /etc/ziproxy.conf 15.11.2005 Daniel Mealha Cabrita version 1.5.2 cfgfile.c, cfgfile.h, http.c, ziproxy.conf: Added (basic) proxy authentication support. Contributed by Roman Korolyov 4.9.2005 Daniel Mealha Cabrita version 1.5.1 http.c, image.c, text.c Fixed some uninitialized variables. 16.7.2005 Daniel Mealha Cabrita version 1.5.0 cfgfile.c, cfgfile.h, http.c, ziproxy.conf: Added new config options: CustomError400, CustomError404, CustomError408, CustomError500, CustomError503 For customization of error messages, instead of using the build-in html code. 400.html, 404.html, 408.html, 500.html, 503.html: Added example files for error messages. 16.7.2005 Daniel Mealha Cabrita ziproxy.c: Fixed. Ziproxy tried to connect only to the first IP from a resolved hostname. Now it tries other ones too (up to 16, hardcoded). Solves the problem of "connection refused" which happens with few websites. 8.7.2005 Daniel Mealha Cabrita ziproxy.spec: Misc fixes to specfile, now more portable. 5.7.2005 Daniel Mealha Cabrita htmlmodify_jp2.l: fix bug which prevented compilation with JPG2k support 2.7.2005 Daniel Mealha Cabrita image.c: fixed transparent gif detection (sometimes problems when AllowLookChange = false) 27.6.2005 Daniel Mealha Cabrita preemptdns.c, preemptdns.h, cfgfile.c, cfgfile.h, http.c: Added a new feature: preemptive hostname resolver. image.c: fixed libpng-related warnings. 16.6.2005 Daniel Mealha Cabrita version 1.4.0 http.c: fixed a bug which made ziproxy processes to hang sometimes http.c, cfgfile.c, cfgfile.h: added new config options: ProcessJPG, ProcessPNG, ProcessGIF netd.c: bugfix/workaround, netd does not close the socket while exiting. Reopening socket with SO_REUSEADDR avoids errors. ziproxy.conf: improvements to example config file. RPM specfile created (ziproxy.spec) Misc changes to documentation. Initscript created (etc/init.d/ziproxy). Uses netd. 13.7.2004 Juraj Variny configure.in: static link to libconfuse by default ziproxy.c: don't use NextProxy for HTTPS connections 11.7.2004 Juraj Variny http.c: remove extra whitespace from headers before parsing; better checking for chunked correctness; forward oversize content instead of error acinclude.m4: use confuse-config to find out flags 6.1.2004 Juraj Variny Makefile.am, configure.in, config/acinclude.m4: little changes to remove warnings, getting 'make dist' working. 4.1.2004 Juraj Variny image.c: apply AllowLookChange option to transparent PNGs too. 29.12.2003 Juraj Variny cfgfile.c, image.c: added AllowLookChange option 24.11.2003 Juraj Variny version 1.3b released 23.11.2003 Cheuksan Wang http.c: fix a typo in forward_content which causes all POST requests to fail 23.11.2003 Juraj Variny version 1.3 released cfgfile.c: CFG_SIMPLE_BOOL sometimes sets default value to false, use CFG_BOOL instead. 22.11.2003 Juraj Variny http.c: redundant code causing unwanted timeouts removed from forward_content() cfgfile.c: subtle change to Gzip option handling 11.11.2003 Juraj Variny http.c, text.c: serious bugs fixed related to gzip compression 29.10.2003 Juraj Variny version 1.3beta released 25.10.2003 Juraj Variny image.c, text.c: fixed JP2 mode HTML modification cfgfile.c, README: updated documentation to be in sync with default config values JPEG2000.txt: updated installation notes 19.10.2003 Juraj Variny image.c: try convert to PNG only if JPEG conversion is not satisfactory enough configure.in, bootstrap, acinclude.m4: removed some bugs and incompatibilities 10.10.2003 Juraj Variny Autoconfiscated (added autoconf support to) the package. Added some files for autotools, bootstrap script and changed all sources to #include config.h . 09.10.2003 Juraj Variny image.c: removed awful buffer overrun bug in palette reduction algorithm. 08.10.2003 Juraj Variny image.c: remove unused colors from palette, alpha implementation of images caching for IMGtoOBJ, some bugfixes. nearly all files: fixed/added some comments 05.10.2003 Juraj Variny http.c: fixed bad http_headers initialization image.c: fixed bugs in GIF decompression/PNG compression and C incompatibilities. 04.10.2003 Juraj Variny image.c: enabled GIF->PNG compression, alpha channel handling for image formats that support it (PNG, JP2) htmlmodify_*.l: common code was put into text.c text.c: new module, while HTML modification for JP2, server is asked for image size and decision is made whether to add an OBJECT tag. 25.09.2003 Juraj Variny ziproxy.c, http.c: squashed some bugs from restructuring 24.09.2003 Juraj Variny ziproxy.c: restructured code log.c, http.c: added new modules 22.09.2003 Cheuksan Wang ziproxy.conf: Comment out LogPipe to make this file compatible with both netd and xinetd. 09.09.2003 Cheuksan E. Wang image.c: Some palette PNG images may have alpha transparancy in them. Remove it so we can convert into jpeg correctly. 08.09.2003 Juraj Variny htmlmodify_jp2.l: Improved HTML modification using OBJECT tags. ziproxy.c, image.c: If beginning of content indicates other image type than server does, use that type instead. 02.09.2003 Cheuksan E. Wang xinetd/ziproxy: fix configuration using server_arg 26.08.2003 Cheuksan E. Wang ziproxy.c: If we are sending a big file down a slow line, reset the alarm once a while so it won't time out in the middle. 26.08.2003 Juraj Variny Makefile: More friendly JP2 setup htmlmodify_JP2.l, cfgfile.c, ziproxy.c: Added IMG->OBJ (or -> EMBED) tag modification for JP2s. Added JP2Rate option. htmlmodify.l, cfgfile.c, ziproxy.c: Fixed minor bugs and made suffix modification optional. After next release should be suffix modification outside JP2 code removed. 16.08.2003 Juraj Variny image.c, ziproxy.c: Added basic JPEG2000 support. 10.08.2003 Cheuksan E. Wang ziproxy.c: Handle HTTP/1.0 Simple Response. 09.08.2003 Juraj Variny ziproxy.c: fixed variable declaration to be plain C compatible ziproxy 1.2b released 04.08.2003 Juraj Variny image.c: added rgb2gray() conversion function ziproxy.c, imgtest.c: added call to rgb2gray() in case requested quality is negative. Handle zero quality. ziproxy.c: if already began to sending data, don't corrupt them by sending error headers cfgfile.c: accept negative ImageQuality values 30.07.2003 Cheuksan E. Wang netd.c: allow users to specify a range of IP addresses with OnlyFrom 27.07.2003 Cheuksan E. Wang netd.c: fixed OnlyFrom error message bug 20.07.2003 Cheuksan E. Wang ziproxy.c: Corrected some typos. Fixed the bug related to 304 response. 20.07.2003 Juraj Variny cfgfile.c: added confuse 2.x support 19.07.2003 Juraj Variny ziproxy.c: Changed maximal header line length to 4096 image.c: added PNG signature check into png2bitmap() 06.03.2003 Juraj Variny ziproxy 1.2 released