Ziproxy
NEWS ARCHIVE (older ones)
SourceForge.net Logo
2010-07-02
5 years later, same maintainer still

Yup, that was 5 years ago. I usually don't like to mark every single event but, since it's a round half-decade, why not.
In 2005-06-12 I took over Ziproxy's development and since then I've been the project's maintainer.
Soon after that, in 2005-06-17, a modest 1.4.0 bugfix version was released. The ChangeLog says how much the code has changed since then.
Ironically, and somewhat fitting, today another bureaucratic bugfix version was released.

I'm not particularly inspired to write today so, for the ones willing to read something more, there's a Sourceforge interview/blog entry published few weeks ago, available here.

yours,
the current Ziproxy maintainer, D.M.C.




2010-07-02
Ziproxy 3.1.2 released

Minor bugfixes and improvements:

  • Ziproxy avoids unnecessary image processing now, thus saving CPU.
  • Fixed daemonization code: no more stdin/stdout kludges.




2010-06-15
Ziproxy 3.1.1 released

Security fixes in this version

A number of bugs appeared in the 3.1.0 version and are now fixed.

  • Fixed security vulnerability (heap-related) in PNG decoder.
    (new bug from 3.1.0)
  • Fixed problem with certain imagens being corrupted after alpha optimization processing (RGBA/YUVA)
    (new bug from 3.1.0)
  • Transparent channels were not correctly loaded in certain PNG pictures, resulting in corrupted or blank images. Fixed.
    (new bug from 3.1.0)
  • Fixed "bashisms" in example statistics generator script. Should work with any Bourne-like shell now.
  • Added temporary workaround for data corruption when libjasper decides to send warnings in certain, rare, circumstances.
    A definitive fix will come later.
  • PNG loader code reorganization and cleanup.
  • Misc code optimizations in image optimization routines.
Upgrade is recommended.




3.6.2010
Ziproxy 3.1.0 released.

Some interesting improvements in this version:
  • Image recompression core rewritten. Improved decision-taking routines.
    In practice, that means more compression in average and code less prone to bugs.
  • Added full support for transparency
    (affects PNG and JP2K targets).
  • Added detection and removal of useless alpha channel
    (certain pictures with alpha channel may be recompressed to JPEG now).
  • Added palette and transparency optimization routines
    (affects lossless compression: PNG targets).
    More compression in certain cases.
  • Added option to convert images to grayscale for more compression.
    New option: ConvertToGrayscale

Ziproxy 3.1.0 is available at the files' section.

20.5.2010
Ziproxy 3.0.1 released.

Security fix release

This version fixes a security vulnerability related to atypical huge picture files (>4GB of size once expanded).
Upgrade is recommended.

This vulnerability was reported by Stefan Cornelius from Secunia Research

Ziproxy 3.0.1 is available at the files' section.

19.4.2010
Ziproxy 3.0.0 released.

As expected, lots of changes in this version.
The code suffered cleanups, some mummified relics are now gone and certain parts were reimplemented.
Compared to the previous stable version (2.7.2), the changes are the following.
Note: for details, check the ChangeLog file in the sources

  • Improvements:
    • IP ToS marking support.
      With this provision you may now do Level-7 traffic shaping based on certain (configurable) characteristics of the HTTP traffic, thus ensuring HTTP QoS (that is, decent browsing experience) even during massive and concurrent downloads of video, ISO images and other bulk data.
      The new ToS-related options are: TOSMarking, TOSFlagsDefault, TOSFlagsDiff, TOSMarkAsDiffURL, TOSMarkAsDiffCT, TOSMarkAsDiffSizeBT.
    • Added full support for files >2GB.
      This affects AccessLog mostly, and fixes two very specific situations where downloads were limited to 2GB.
      The limit now is (worst case) >81 PB.
    • Changed the time measurement system.
      File transfers >35 minutes had their time incorrectly reported.
      The limit now is (worst case) >290000 years.
    • New daemon-related options.
      New options: RunAsUser, RunAsGroup, PIDFile
      New CLI options: --pid-file, --stop-daemon, --user, --group
    • Added support for simultaneous user connection limit.
      New option: MaxActiveUserConnections
    • Now transfers interrupted with SIGTERM as logged aswell.
      Added 'X' flag support to AccessLog.
    • Improvements on the daemon fail routines.
    • Access log code rewritten from scratch and simplified.
    • New error/warning log subsystem.
      Much improved verbosity.
      Added support for logging errors into a file instead of simply dumping them to stderr.
      New option: LogError
    • New lossless Content-Type configuration system.
      Now it's possible to specify the full mime-type instead of just "application/" subtypes.
      Now also possible to specify pattern-matches (such as "text/*blah")
      New option: LosslessCompressCT
      New related options: TOSMarkAsDiffCTAlsoXST, URLReplaceDataCTListAlsoXST, LosslessCompressCTAlsoXST.
  • Bug fixes:
    • Several bugs involving garbage to output and/or crashing were fixed.
    • Fixed compilation errors while compiling with libpng 1.4.
    • Under certain circumstances, PNG pictures were not recompressed. Fixed.
      This bug typically affected non-x86-32 architectures.
  • Other changes:
    • Deprecated options (still work):
      ZiproxyTimeout (see: ConnTimeout)
      AccessLogFileName (see: AccessLog)
      Compressible (see: LosslessCompressCT)
    • Obsoleted options:
      LogPipe
      MSIETest
      LogFile (see: DebugLog)
      AccessLogUserPOV
      NetdTimeout
    • Removed all Russian translations.
      Note: That due to lack of maintainer.

Ziproxy 3.0.0 is available at the files' section.

26.3.2010
Ziproxy April Fools' 2010 released.

That's a real release! Honest!
It's a modified version of 2.7.9_BETA3 for the pranksters among us.
For details, access this page.

Ziproxy - BOFH's best friend.


8.3.2010
Ziproxy 2.7.9_BETA3 released.

Again, lots of changes in this version:
  • Improvements:
    • Added native UID/GID change support for daemon.
      New options: RunAsUser, RunAsGroup
      New CLI options: --user, --group
    • Added native PID file support for daemon control.
      New option: PIDFile
      New CLI options: --pid-file, --stop-daemon
    • Access log code rewritten from scratch and simplified.
    • Improved daemon error verbosity.
    • Added support for simultaneous user connection limit.
      New option: MaxActiveUserConnections
    • Improvements on the daemon fail routines.
      Now avoids unnecessary daemon abortions and busy loops.
    • Now transfers interrupted with SIGTERM as logged aswell.
      Added 'X' flag support to AccessLog.
    • Minor tweaking in the hash-generation functions, to reduce the likehood of hash collisions.
    • Added GCC-specific optimizations to ziproxylogtool, giving between 5%-15% speedup.
      Such optimizations are innocuous to other compilers.
  • Bug fixes:
    • Several bugs involving garbage to output and/or crashing were fixed.
    • Fixed compilation errors while compiling with libpng 1.4.
  • Other changes:
    • The following option was deprecated:
      ZiproxyTimeout (see: ConnTimeout)
    • The following options were obsoleted:
      AccessLogUserPOV, NetdTimeout
For more detailed information on the changes made, see the ChangeLog file.


Ziproxy 2.7.9_BETA3 is available at the files' section.

3.1.2010
Ziproxy 2.7.9_BETA2 released.

Lots of changes in this version:
  • Improvements:
    • Added full support for files >2GB.
      This affects AccessLog mostly, and fixes two very specific situations where downloads were limited to 2GB.
      The limit now is (worst case) >81 PB.
    • Changed the time measurement system.
      File transfers >35 minutes had their time incorrectly reported.
      The limit now is (worst case) >290000 years.
    • New error/waning reporting subsystem.
      Added messages to situations previously unreported.
      Added more verbosity to such messages.
      Added support for obsolete/deprecated/conflict/etc options from config file.
      More uniform error messages.
      Added support for logging errors into a file instead of simply dumping them to stderr.
      New option: LogError
    • New lossless Content-Type configuration system.
      Now it's possible to specify the full mime-type instead of just "application/" subtypes.
      Now also possible to specify pattern-matches (such as "text/*blah")
      New option: LosslessCompressCT
      New related options: TOSMarkAsDiffCTAlsoXST, URLReplaceDataCTListAlsoXST, LosslessCompressCTAlsoXST.
      Deprecated option: Compressible (still functional)
    • Added "G" flag support to AccessLog.
  • Bug fixes:
    • Under certain circumstances, PNG pictures were not recompressed. Fixed.
      This bug typically affected non-x86-32 architectures.
  • Other changes:
    • Changed default value of MinUncompressedGzipStreamEval from 250000 (~250kB) to 10000000 (~10MB).
      This avoids trigging of MaxUncompressedGzipRatio if ISO9660 images are compressed while streaming.
    • Obsoleted LogPipe option.
    • Obsoleted MSIETest option.
    • Obsoleted LogFile option
      See new option: DebugLog option
    • Removed all Russian translations.
      Note: That due to lack of maintainer.
    • Deprecated AccessLogFileName (still works).
      See new option: AccessLog.
For more detailed information on the changes made, see the ChangeLog file.


Ziproxy 2.7.9_BETA2 is available at the files' section.

14.12.2009
Ziproxy 2.7.9_BETA released.

This release brings a major - and exciting - new feature: IP ToS marking support.
With this provision you may now do Level-7 traffic shaping based on certain (configurable) characteristics of the HTTP traffic, thus ensuring HTTP QoS (that is, decent browsing experience) even during massive and concurrent downloads of video, ISO images and other bulk data.

The new ToS-related options are: TOSMarking, TOSFlagsDefault, TOSFlagsDiff, TOSMarkAsDiffURL, TOSMarkAsDiffCT, TOSMarkAsDiffSizeBT.
Note: Marking packets is only part of the job, you still need a a router/traffic shaper aware of the different TOSes in order to priorize the traffic accordingly.

This beta version adds only ToS capability, more changes/features will appear in next beta releases.
As always, feedback from testers is appreciated.

Ziproxy 2.7.9_BETA is available at the files' section.

30.9.2009
Ziproxy 2.7.2 released.

Really minor fixes this time:

  • LogFile timer was not properly initialized and the first measurement was always wrong. Fixed.
  • Fixed minor mistakes in acknowledgment texts.

Ziproxy 2.7.2 is available at the files' section.

28.9.2009
Ziproxy is 7 years old

Considering the official project birthday, 2002-09-24, Ziproxy is now 7 years old, alive and kicking.
Nowadays Ziproxy provides acceleration for a variety of situations, being that ISPs, private WAN networks, generic acceleration services or simply people who need some extra speed for their network connections.

Ziproxy is a honest solution, providing what it claims to: realistic HTTP acceleration.
Certain commercial software (I won't mention the names, but you probably know who they are) claim absurd numbers such as "up to 200x acceleration" obviously using unrealistic metrics (such as raw bitmap size divided by compressed size). Funny to know that such software even hide the fact they use JPEG 2000 for their "extra quality algorithm" (as if they invented the algorithm themselves).

In real world, when compared to Ziproxy, such software offer either lower image quality or lower compression. Everyone is free to do the test themselves.
So here we are: debunking the myth that commercial software is necessarily better than free (FOSS) software!

yours,
the current Ziproxy maintainer, D.M.C.



13.9.2009
New download section

A download section was created, including instructions on how you may download/install precompiled packages for your favorite OS (if available, that is).

Click here to access the download section.

12.9.2009
Ziproxy 2.7.1 released.

Minor fixes this time:

  • Fixed HTTP/0.9 simple response support (which was broken for aeons and nobody noticed).
  • Gunzipped data smaller than the compressed was being treated as corruped and data was simply forwarded as is.
    But that's not necessarily true (a certain website thought it was a good idea to gzip jpegs, for example) and in certain cases processing was not applied because of that.
    Fixed.
  • Implemented workaround for buggy sites which send:
    Content-Encoding: ISO-8859-1 (violates RFC 2616).
    Fixes certain pages which appeared as binary garbage in the browser.

Ziproxy 2.7.1 is available at the files' section.

13.4.2009
Ziproxy 2.7.0 released.

This version suffered a major cleanup and contains a number of bugfixes (incluing security ones) and extra features.
The changes are listed below (relative to 2.6.0 version).

New security fixes/features:
  • Added provision for outgoing port restrictions.
    New options: RestrictOutPortHTTP, RestrictOutPortCONNECT
    This provision mitigates the transparent proxy vulnerability US-CERT VU#435052
  • Added feature against "image bomb" DoS.
    New option: MaxUncompressedImageRatio

Other features:
  • Added support for custom 403 error pages.
  • Added Lanczos component upsampler support to JP2k.
    New option: JP2Upsampler
  • Added provision for crash (signal) interception and logging (see new access log flags).
    New option: InterceptCrashes
  • Added support for content substitution by matching URL + content-type.
    New options: URLReplaceDataCT, URLReplaceDataCTList
  • Added support for URL blocking.
    New option: URLDeny
  • Added support for "ICY" SHOUTcast headers. Now icecasts from such servers are playable.

Bugfixes:
  • Fixed a bug which caused crashes in certain, rare, specific situations while compressing to jp2k.
  • Fixed bug in rgb2yuv converter. In certain cases jp2 pictures had some very wrong colors (like deep red turned into strong pink etc).
  • Fixed the type/signedness mess with outgoing Port vars. Ports >= 32768 were not accessible.
    Non-standard HTTP/HTTPS ports (non-80/443) were not accessible in big-endian architectures.
  • Changed JPG and JP2K default settings to (hopefully) better values.
  • Bug which prevented recompression to jp2k when more aggressive parameters were set to color components, original image was forwarded instead. Fixed.
  • Encoding/decoding jp2 images with alpha channel always fails. Fixed.

Other:
  • Obsoleted ModifySuffixes. It was buggy and lost its usefulness a long ago.
    The following config options are obsolete:
    ModifySuffixes, MinTextStream
  • Flex is no longer required for building Ziproxy.
  • Test programs were obsolete and were removed (imgtest, modifytest, cfgtest) and no longer are a build option.

Ziproxy 2.7.0 is available at the files' section.

15.3.2009
Ziproxy 2.6.9_BETA2 released.

New features:
  • Added provision for crash (signal) interception and logging (see new access log flags).
    New option: InterceptCrashes
  • Added feature against "image bomb" DoS.
    New option: MaxUncompressedImageRatio
  • Added support for content substitution by matching URL + content-type.
    New options: URLReplaceDataCT, URLReplaceDataCTList
  • Added support for URL blocking.
    New option: URLDeny
  • Added support for "ICY" SHOUTcast headers. Now icecasts from such servers are playable.

Bugfixes:
  • Fixed a bug which caused crashes in certain, rare, specific situations while compressing to jp2k.
  • Fixed bug in rgb2yuv converter. In certain cases jp2 pictures had some very wrong colors (like deep red turned into strong pink etc).

Other:
  • Obsoleted ModifySuffixes. It was buggy and lost its usefulness a long ago.
    The following config options are obsolete:
    ModifySuffixes, MinTextStream
  • Flex is no longer required for building Ziproxy.
  • Test programs were obsolete and were removed (imgtest, modifytest, cfgtest) and no longer are a build option.
  • Miscellaneous code cleanup.

Ziproxy 2.6.9_BETA2 is available at the files' section.

26.2.2009
Ziproxy 2.6.9_BETA released.

New features:
  • Added provision for outgoing port restrictions.
    New options: RestrictOutPortHTTP, RestrictOutPortCONNECT
    This provision mitigates the transparent proxy vulnerability US-CERT VU#435052
  • Added support for custom 403 error pages.
  • Added Lanczos component upsampler support to JP2k.
    New option: JP2Upsampler

Bugfixes/changes:
  • Fixed the type/signedness mess with outgoing Port vars. Ports >= 32768 were not accessible.
    Non-standard HTTP/HTTPS ports (non-80/443) were not accessible in big-endian architectures.
  • Changed JPG and JP2K default settings to (hopefully) better values.
  • Bug which prevented recompression to jp2k when more aggressive parameters were set to color components, original image was forwarded instead. Fixed.
  • Encoding/decoding jp2 images with alpha channel always fails. Fixed.

Ziproxy 2.6.9_BETA is available at the files' section.

23.2.2009
Security warning - US-CERT VU#435052

US-CERT published today the security warning VU#435052 about a vulnerability concerning transparent HTTP proxies.
The report is available at http://www.kb.cert.org/vuls/id/435052.
Ziproxy-specific information may be accessed from that same page or directly at http://www.kb.cert.org/vuls/id/MAPG-7N9GN8.

23.2.2009
Implementing a WAN accelerator with JPEG 2000 + Squid.

Instructions on how to implement a WAN accelerator using Ziproxy and Squid are now available here.
This information is based on a production scenario and includes specificities relevant to that case. It's just a suggestion on how to do it, and it is possible to adapt that to a more specific case.

27.11.2008
Ziproxy is > 6 years old.
or a tentative of birthday announcement

Ok, that's a strange birthday but all the previous ones (including the major 5yo one) were not announced.
So that's it: Ziproxy is over 6 years now. Unfortunately I cannot provide a precise date of creation, so let's use the earliest known public release: the 1.1 version from 2002-09-24.

Ziproxy started as a simple, humble project. It was not meant be used by ISPs, nor to provide the features it currently does.
When I took over the development back in 2005 (because it was the only free-open-source software which provided what I wanted) I was not expecting to do much more than a number of bugfixes and perhaps some optimizations -- perhaps to work on that during 6 months and just releasing one bugfix or another afterwards.
But Ziproxy grew up, much more than I've expected, for the benefit of everyone who use this software nowadays.
About the future... I don't know. Ziproxy never had a development plan and it seems to be fine without one.

I would like to thank everyone who directly or indirectly contributed to the project (see the "CREDITS" file in the sourcecode), specially Juraj for creating Ziproxy in the first place.

Enough sentimentalism. Let's go back to work.

yours,
the current Ziproxy maintainer, D.M.C.


27.11.2008
Ziproxy 2.6.0 released.

New features (compared to 2.5.2):
  • Ad-blocker, by the means of content substitution. New option: URLReplaceData
  • Now a authenticated connection also logs the username alongside its IP (username@X.X.X.X).
  • Added support for host exception list when using the BindOutgoing option.
    May solve problems with certain hosts which do not like IP rotation.
    New options: BindOutgoingExList, BindOutgoingExAddr
  • Added support for custom 407 and 409 error pages.
  • Added Russian translation of manpages, README and other docs.

Bugfixes:
  • Under random conditions or unrelated configuration changes the pictures were not recompressed. Fixed.

Ziproxy 2.6.0 is available at the files' section.

3.9.2008
Ziproxy 2.5.9_BETA released.

This beta version includes some new features:
  • Ad-blocker, by the means of content substitution. New option: URLReplaceData
  • Now a authenticated connection also logs the username alongside its IP (username@X.X.X.X).
  • Added support for host exception list when using the BindOutgoing option.
    May solve problems with certain hosts which do not like IP rotation.
    New options: BindOutgoingExList, BindOutgoingExAddr


Ziproxy 2.5.9_BETA is available at the files' section.

31.3.2008
Ziproxy 2.5.2 released.

More bugfixes:
  • Proxy authentication would bring access denial if such was not requested by Ziproxy (unnecessary authentication sent by user).
    Now it is simply ignored and access is normal.
  • Ziproxy did not send the proper URL to the server (so it failed) when connecting to another proxy and the client accessed Ziproxy in transparent proxy mode.
    Fixed.
Also, some people may have noticed that there's no longer a src.rpm package at the downloads' section.
Generating that package was quite redundant, considering that the RPM specfile is already present inside the tar.bz2 file.


Ziproxy 2.5.2 is available at the files' section.

10.3.2008
Ziproxy 2.5.1 released.

Just a minor bugfix this time:
  • When non-processable (htmlopt etc) data came already gzipped, Ziproxy tried to load it all into memory, then it recompressed again.
    Now it streams that directly, unmodified. Should improve latency in certain cases.


Ziproxy 2.5.1 is available at the files' section.

29.1.2008
Ziproxy 2.5.0 released.

The changes, compared to the version 2.4.3, are:
  • Rewritten and much improved JPEG 2000 support. It's much faster now and quality of the JPEG 2000 pictures are much, much better.
    Many JP2-related options were added (although the defaults are quite reasonable).
    Everyone are invited to give JPEG 2000 a try!
    Note: JPEG2000 requires from the client either one of the following:
    • Browser with native JPEG2000 support (such as Konqueror) OR
    • Browser with installed JPEG2000 plug-in (there are for Firefox, possibly others) OR
    • To install Ziproxy at the client side in order to convert JPEG2000 back to JPEG
    Certain plug-ins/browsers (specially old versions) do have an incomplete JPEG2000 support and may break the pictures, or may even crash.
  • Changed default configuration file to /etc/ziproxy/ziproxy.conf
    This was needed in order to have a standard directory for the other (optional) configuration files.
  • New example configuration files added.
  • Manpages for ziproxy and ziproxylogtool added.
  • Added a mechanism to "exempt" certain URLs from processing (broken webservers, broken sites etc).
  • The basic authentication routines were mostly rewritten (code reorganization / speedup).


Ziproxy 2.5.0 is available at the files' section.

16.1.2008
Ziproxy 2.4.8_BETA2 released.

The second beta of the 2.4.8 version (actually the non-beta will be 2.5.0) has the following changes:

  • Changed default configuration file from /etc/ziproxy to /etc/ziproxy/ziproxy.conf
    There are other (optional) configuration files that had no standard place to be, now their home is /etc/ziproxy
  • New example configuration files included (which now has a suggested location of /etc/ziproxy/).
  • Manpages for ziproxy/ziproxylogtool added. A contribution from Marcos Talau.
  • Now it's possible to exempt certain URLs from Ziproxy processing (in case of malformed HTTP data, Ziproxy bugs or simply because compression is not desired for a specific location).
    It has a simple pattern-matching provision, with "*".
    New option: URLNoProcessing
  • The (basic) authentication routines were mostly rewritten. Mostly for code reorganization, but should be much faster as side-effect (only noticeable if one has many, many users).


Ziproxy 2.4.8_BETA2 is available at the files' section.

7.1.2008
Ziproxy 2.4.8_BETA released.

This beta version includes a faster and much improved JPEG 2000 (JP2) support.
Previous Ziproxy versions did include JP2 support, but it was sort of a limited experimental version and some people who tried it was probably disappointed by its slowness and unimpressive image quality.
If you were one of them, you're invited to give another try to JP2 compression this time.
It is (really) recommended to read the included documentation on this format: JPEG2000.txt

The main changes/improvements in JP2 support:
  • Much faster processing (JP2 is still heavier to process than JPEG).
  • Supports both compression and decompression. It's possible to process incoming JP2 pictures now.
  • Compression level is no longer rate-based, but quality-based such as JPEG.
  • Supports YUV color model now. Previously only RGB and monochrome.
  • Supports per-channel resulution setting. Previously only 8 bit per channel.
  • Supports per-channel sampling resolution. Previously there was no such support.
  • Added provisions for what one may call "Ziproxy tunnel mode" locally converting JP2 back to (high quality) JPEG, so clients with no JP2 support may take advantage of that format still.

Since this release contains lots of new code, testing and bug reporting is specially appreciated in this case.

Ziproxy 2.4.8_BETA is available at the files' section.

15.12.2007
Ziproxy 2.4.3 released.

IMPORTANT BUGFIX IN THIS VERSION
Streaming data (no Content-Length) could be prematurely interrupted in certain cases. Fixed.
In practice that means that certain pages, under certain circumstances, could not load or load partially.

If you use Ziproxy in a production environment, this upgrade is highly recommended.
This bug appeared in version 2.4.2.

Ziproxy 2.4.3 is available at the files' section.

5.12.2007
Ziproxy 2.4.2 released.

Major bugfixes and minor misc improvements in this version.
  • The following bugs are now fixed:
    • Fixed broken user pipe detection while transferring unprocessed stream-to-stream.
    • 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.
    • Content-Length wasn't being removed while stream-to-stream gunzipping. Fixed.
    • Ziproxy crashed when AccessLogFileName wasn't defined. Fixed. This bug appeared in 2.4.1 version.
  • Improvements:
    • 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.
    • 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'.

Ziproxy 2.4.2 is available at the files' section.

23.11.2007
Ziproxy 2.4.1 released.

This release feature some interesting new options and brings important improvements to the access logger.
It also includes a bugfix which will, hopefully, bring a definitive end to (rather rare but still happened) processes busy-loop crashing.
  • The following bugs are now fixed:
    • When decompressing jpeg incomplete files, ziproxy process crashes (busy loops) until it timeouts.
      This is a very old bug, finally fixed.
  • New features/options:
    • New option: BindOutgoing
      If you have a huge number of users behind Ziproxy
      this option probably makes sense for you.
    • New option: AccessLogUserPOV
    • Added new xml types as (gzip) compressible *1.
      Added 'pdf' and 'tar' as compressible application types.
    • Added access log support for interrupted/timeouted transfers.
      Added access log flags 'Z' (timeout)
      and 'B' (broken pipe, interrupted)
*1 - Pointed out by Artem S. Tashkinov

Ziproxy 2.4.1 is available at the files' section.

7.11.2007
Ziproxy 2.4.0 released.

This release (relative to 2.3.0) is a bugfix-oriented one. There are no exciting new features this time, still it deserved a middle version jump due to the extensive changes applied to the code.
Relative to version 2.3.5_BETA, the changes are as follow.
  • The following bugs are now fixed:
    • In certain cases, random junk was appended at the top of html file.
    • Trivial overflow problem which gave false positives for "gunzip threshold limit".
    • Ziproxy tried to load into memory, data types which are not supposed to be processed, thus adding unnecessary latency.
    • When config file was empty, the following error occurred: ERROR: Invalid parameter --> <empty>
    • 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.
    • Misc fixes to HTMLopt: maps.google.com and www.hotmail.com seem to work after optimization, now.
  • New features/options:
    • New option: MinUncompressedGzipStreamEval
    • Added support for javascript files as text/javascript (relevant only when JS optimization is enabled).
    • HTMLopt: Now tests whether text/html is indeed html.
      In practice, it's not always the case: certain (or most?) servers send pure (non-html encapsulated) JS or CSS and the resulting data will likely end corrupted.
This is a recommended upgrade, specially if you're using version 2.3.0.

Ziproxy 2.4.0 is available at the files' section.

26.10.2007
Ziproxy 2.3.5_BETA released.

Due to the nature of the changes in this version, this is being released as beta version.
This version is expected to work well, but new bugs may be introduced.

Attention: starting from this version, Ziproxy no longer uses libConfuse.

New features / improvements:
  • Replaced libconfuse with qparser (built-in config parser), thus that library is no longer used.
  • New option:
    WA_MSIE_FriendlyErrMsgs (workaround for MSIE bug),
  • Added (limited) support for partial data download (Content-Range, Range).
  • Added gzip/gunzip stream-to-stream support. Appliable when no other optimizations are requested/viable.
  • Now logs always report gzipped transfers new sizes.
  • Changed some defaults to more sensible values.
Bugfixes:
  • Broken gzip were not being uncompressed (that's ok) but Ziproxy attempted to recompress those again. Fixed.
  • Requests were broken when in transparent proxy mode _and_ the client explicited the port. Fixed.
  • Fixed missing includes and certain inconsistencies in the source code. That could (or did) prevent compilation in certain OSes.
  • Fixes x86_64 (and possibly other arches) parsing problems (see new features: qparser).
  • MinTextStream was using the decompressed size, what is senseless if the data came pre-compressed by the remote server. Fixed.
  • Many other misc bugfixes.

Ziproxy 2.3.5_BETA is available at the files' section.

13.9.2007
Ziproxy 2.3.0 released.

This version includes some improvements and some bugfixes:
  • New: support for remote host-side gzip compression.
  • Fixed compatibility code for IPv4-only OSes.
  • Slightly more informative error pages.
  • A couple of bugs in HTMLopt were fixed
    (still HTMLopt is far from being production quality).
  • New options:
    • AllowMethodCONNECT
    • OverrideAcceptEncoding
    • MaxUncompressedGzipRatio
    • RedefineUserAgent
    • DecompressIncomingGzipData
    • ProcessHTML_TEXTAREA
  • Miscellaneous fixes and changes in the HTTP routines.
Warning: This version is expected to work well, but due to some deeper changes in the code (required in order to add remote host-side gzip support) it's possible to encounter a bug absent in previous versions.
If that happens to you, please report that along with instructions on how to replicate that.

Ziproxy 2.3.0 is available at the files' section.

8.5.2007
Ziproxy 2.2.2 released.

This version is mostly bug-fixes:
  • Some files with too many headers were not loadable (typically some wikipedia.org pictures). Fixed.
  • HTMLopt: Fixed commented (escaped, in a way) CDATA XML tag which was being removed.
  • HTMLopt: Fixed trailing trash in html/javascript/css which was being removed.
  • Ziproxylogtool: Added internal caching (about 4.5x faster in large logs now).
  • Added README.tools.
Ziproxy 2.2.2 is available at the files' section.

19.12.2006
Ziproxy 2.2.1 released.

Pankov Pavel pointed out that version 2.2.0 has a compilation issue under FreeBSD (possibly other non-GNU OSes aswell). Fixed.
A new record: 2.2.0 is the shortest lived Ziproxy release ever.

Ziproxy 2.2.1 is available at the files' section.

18.12.2006
Ziproxy 2.2.0 released.

New features:
  • Ziproxy Log Tools. Even includes output to fancy HTML.
New options added:
  • ConventionalProxy
  • Address
  • Nameservers *1
Fixed bugs:
  • HTTP 302/304 bug (prevented youtube.com from working properly) *1
  • Ziproxy was passive when collecting zombie children *1
  • AllowLookChange has incorrect default
  • Standalone javascript files weren't being compressed *2
*1 - Fixed/Implemented by Heiko Hund (reported by Dimitrij Hilt).
*2 - Reported/Fixed by Alex, from Ukraine.

Ziproxy 2.2.0 is available at the files' section.

2.9.2006
Ziproxy 2.1.1 released.

Fixed a compilation bug, when Jasper is enabled.
Modify suffixed is now disabled by default, even with Jasper enabled.

Ziproxy 2.1.1 is available at the files' section.

26.7.2006
Ziproxy 2.1.0 released.

This version introduces an experimental HTML, Javascript and CSS optimizer.
The gains of such optimizations varies from site to another, some sites are already pre-optimized so the size reduction, after gzipping, in such cases may be about 5-10%.
Unoptimized handcrafted code may become even 50% smaller (2/3 their size after gzipping), such as this one.
Feedback on this feature is appreciated. If you wish to report broken URLs, it would be kind to provide what kind of optimization is breaking that page (javascript, CSS, etc).

This release also includes some misc bugfixes (see ChangeLog).
Ziproxy 2.1.0 is available at the files' section.

29.6.2006
Ziproxy 2.0.0 FINAL released.

There were minor changes compared to 1.9.0:
  • PDF, RTF (and shortnamed mime types in general) now gzip correctly.
  • Changes to the rpm specfile allowing of static binary generation.
Don't be scared of the trailing zeroes in this version number, Ziproxy 2.0.0 is the most stable release currently.
I like repeating myself: the new version is available at the files' section.

18.5.2006
New Ziproxy version 1.9.0 (aka 2.0.0 beta) available.

After six months of hiatus, it's available now a new version of Ziproxy, 1.9.0, which is a beta version of the upcoming 2.0.0.
The major version bump happened not only because of the new features, but also because the fact there's also some break of compatibility caused by structural differences between this version and the previous one (1.5.2).
The new features in this version:
  • Monolithic architeture. Netd is obsolete, there's only the "ziproxy" binary now, which operates in both daemon mode and [x]inetd mode.
  • Transparent proxy mode, self explanatory. Option: TransparentProxy
  • Detailed access log. Provides, among other informations, compression statistics. Option: AccessLogFileName
  • New tuning parameter. Option: MinTextStream
  • New command line parser. Type "ziproxy --help" to get the idea.
Please report the bugs you find and, pretty please, along with the description on how to duplicate it.

The new version, as usual, is available at the files' section.
Have fun!

20.11.2005
Homepage new layout and new logo.

The old page seemed rather confusing to read, so here we have a new layout.
Yes, I know it's colorful and stuff, but the idea is to make the site easier to read.
The contents are almost untouched tough.
We also have a logo for Ziproxy (well, why not).

15.11.2005
New stable release: 1.5.2

Improvements:
  • New feature: Authentication support. Contributed by Roman Korolyov.
Note: There was a previous 1.5.1 version I forgot to announce in this page.

18.7.2005
New stable release: 1.5.0

Improvements:
  • New feature: Preemtive hostname resolver.
  • Error messages are now customizable. Examples included.

Fixed bugs:
  • Fixed transparent gif misdetection (AllowLookChange=false).
  • Fixed bug which prevented compilation with JPG2k support.
  • Ziproxy tried to connect only to the first IP from a resolved hostname (some few sites returned "connection refused"). Now fixed.
  • Misc changes/fixes to RPM specfile.
  • Fixed compilation libpng-related warnings.
17.6.2005
New stable release: 1.4.0

Improvements:
  • Added new options to the config file: ProcessJPG, ProcessPNG, ProcessGIF.
  • Added initscript, for convenience.
  • Added RPM specfile.
  • Improventes to the example config file.

Fixed bugs:
  • Fixed: Random crashes in Ziproxy process.
  • Fixed: The "socket busy" bug.
12.6.2005
New maintainer
Since today Ziproxy is now being maintained by Daniel Mealha Cabrita.
From: Juraj Variny <xxxx@xxxxxxx>
To: Daniel Mealha Cabrita <xxxxx@xxxxxx>
Date: Sun, 12 Jun 2005 13:04:48 +0200
Subject: [Ziproxy-users] Re: bugfix for Ziproxy

I did not asked for uber-clean patches. Correct and useful ones are
sufficient. :o)

Thus, your patch was committed into CVS and you are now admin of the project.

Good luck!

Juraj

On Saturday 11 June 2005 21:45, you wrote:
>       I'm sending you the patch, attached. It's a quick-and-dirt fix actually,
> but the only (rare) crashes I've had afterwards were libungif-related only.
>
>       If you still feel it's ok to transfer the project to my hands, my
> sourceforge login is: dmcabrita.
>
>
> .dan
30.9.2004
New stable release: 1.3d. Fixed bugs:
  • Removed chunked encoding issue when accessing some servers.
  • LibConfuse is linked statically by default.
6.8.2004
Due to serious security flaws in libpng, static ziproxy binaries were recompiled using patched libpng-1.2.5. Download. If you compiled ziproxy yourself from source, I recommend update and recompile, either.
14.7.2004
New stable release: 1.3c. Fixed bugs:
  • Better libconfuse detection (using confuse-config from confuse 2.3).
  • More permissive parsing of headers (sites like bestbuy.com didn't work).
  • Images or compressible content that exceed MaxSize are now forwarded unchanged instead of error.
  • Fixed HTTPS behavior if NextProxy is set.
10.1.2004
New testing release: ziproxy-10012004. Added an AllowLookChange option. It causes ziproxy to avoid compression of animated or transparent images.
24.11.2003
New stable release: 1.3b. Fixed typo causing all POST requests to fail.
23.11.2003
New stable release: 1.3. Serious compression/timeout bugs were fixed. The JPEG2000 code is still in beta status, as nobody other tested it.
29.10.2003
New testing release: 1.3beta. Features:
  • New autotools-based installer, configure script with bunch of convenient options. No more Makefile editing! In case something goes wrong, there's still plain Makefile in src/ .
  • GIF->PNG lossless image conversion where appropriate, with transparency preserved.
  • HTML modification is considered obsolete and turned off by default.
  • JPEG2000 mode (compile-time option). It is intended to work together with JP2 plugin for MSIE (see below), while still fully compatible with non-JP2 browsers.
  • HTTP/1.0 Simple Response support, with image header detection and compression.
  • Many bugfixes (better timeout behaviour, PNG reading bug, LogPipe set in incompatible mode by default, ...).
16.8.2003
If you're interested in JPEG2000, this is something for you. JPEG2000 is new image format aimed to replace JPEG. It is supported by some browsers (MSIE and Mozilla plugins). Ziproxy now can optionally compress images into it instead of classical JPEG. You need Jasper library. For further instructions get latest ziproxy from CVS and consult JPEG2000.txt.
9.8.2003
Released ziproxy-1.2b. It contains few bugfixes and following features:
  • Some or all pictures may be converted to grayscale. This improves visual quality, while keeping file size.
  • If you are not willing to start netd with IP address each time you're dialing, you may now use range of IP addresses in OnlyFrom option.
  • libConfuse 2.x support (don't forget to set it in Makefile).

23.7.2003
Uploaded first usable version of this web page.