--------------------------------------------------------------------
ChangeLog for Privoxy
--------------------------------------------------------------------
-*** Since 3.0.9 Beta ***
+*** Version 3.0.16 Stable ***
+
+- Added the config file option handle-as-empty-doc-returns-ok to
+ work around Firefox bug #492459, which causes Firefox to hang
+ if JavaScripts are blocked in certain situations. The option is
+ enabled in the default config file.
+- Added the config file option default-server-timeout to control the
+ assumed default server timeout. Since Privoxy no longer returns
+ an error message for connection resets on reused client connections,
+ assuming larger server timeout values appears to actually work
+ pretty well as long as connections aren't shared.
+- Added optional support for FreeBSD's accf_http(9). Use the
+ configure option --enable-accept-filter to enable it.
+- Added fancier Privoxy icons for win32. Contributed by Jeff H.
+- In daemon mode, fd 0, 1 and 2 are bound to /dev/null.
+- Resolve localhost using whatever address family the operating
+ system feels like. Previous betas would try to use IPv4 as this
+ is what most users expect, but this didn't work reliably on
+ GNU/Linux systems.
+- In the action lists on CGI pages, actions and their parameters are
+ no longer separated with a space. The action file parser doesn't
+ actually allow this and will throw an invalid syntax error if actions
+ and parameters in the action files are separated. Not adding the
+ spaces means copy and pasting CGI output into the action files works.
+- The default keep-alive timeout has been reduced to 5 seconds to work
+ around hangs in clients that treat the proxy like any other host and
+ stop allowing any new connections if the "maximum number of
+ connections per host" is reached.
+- Several webbug URLs that look like they are leading to images are now
+ blocked as image instead of empty documents. Doing the latter causes
+ WebKit-based clients to show a "missing image" icon which may mess up
+ the layout.
+- The no-such-domain template is used for DNS resolution
+ problems with FEATURE_IPV6_SUPPORT enabled. Previously the
+ connect-failed template was used. Reported by 'zebul666'.
+- Accepts quoted expiration dates even though RFC 2109 10.1.2
+ doesn't seem to allow them. Reported anonymously.
+- Don't try to forget connections if connection sharing is disabled.
+ This wasn't a real problem but caused an unnecessary log message.
+- The still undocumented --enable-extended-host-patterns configure
+ option has a better description.
+- Fixed an error message that would claim a write to the server
+ failed when actually writing to the client failed.
+- Log the crunch reason before trying to write to the client.
+ The log is easier to read that way.
+- Several log messages about client connections also mention
+ the socket number.
+- handle-as-empty-document no longer depends on the image blocking
+ code being enabled.
+- Privoxy-Log-Parser is roughly 40% faster in highlighting mode.
+- uagen, a Firefox User-Agent generator for Privoxy and Mozilla
+ browsers has been imported and is available in the tarball's
+ tools directory.
+- The scripts in the tools directory treat unknown parameters
+ as fatal errors.
+
+*** Version 3.0.15 Beta ***
+
+- In case of missing server data, no error message is send to the
+ client if the request arrived on a reused connection. The client
+ is then supposed to silently retry the request without bothering
+ the user. This should significantly reduce the frequency of the
+ "No server or forwarder data received" error message many users
+ reported.
+- More reliable detection of prematurely closed client sockets
+ with keep-alive enabled.
+- FEATURE_CONNECTION_KEEP_ALIVE is decoupled from
+ FEATURE_CONNECTION_SHARING and now available on
+ all platforms.
+- Improved handling of POST requests on reused connections.
+ Should fix problems with stalled connections after submitting
+ form data with some browser configurations.
+- Fixed various latency calculation issues.
+- Allows the client to pass NTLM authentication requests to a
+ forwarding proxy. This was already assumed and hinted to work
+ in 3.0.13 beta but actually didn't. Now it's confirmed to work
+ with IE, Firefox and Chrome.
+ Thanks to Francois Botha and Wan-Teh Chang
+- Fixed a calculation problem if receiving the server headers
+ takes more than two reads, that could cause Privoxy to terminate
+ the connection prematurely. Reported by Oliver.
+- Compiles again on platforms such as OpenBSD and systems
+ using earlier glibc version that don't support AI_ADDRCONFIG.
+ Anonymously submitted in #2872591.
+- A bunch of MS VC project files and Suse and Redhat RPM spec
+ files have been removed as they were no longer maintained for
+ quite some time.
+- Overly long action lines are properly rejected with a proper
+ error message. Previously they would be either rejected as
+ invalid or cause a core dump through abort().
+- Already timed-out connections are no longer temporarily remembered.
+ They weren't reused anyway, but wasted a socket slot.
+- len refers to the number of bytes actually read which might
+ differ from the ones received. Adjust log messages accordingly.
+- The optional JavaScript on the CGI page uses encodeURIComponent()
+ instead of escape() which doesn't encode all characters that matter.
+ Anonymously reported in #2832722.
+- Fix gcc45 warnings in decompress_iob().
+- Various log message improvements.
+- Privoxy-Regression-Test supports redirect tests.
+- Privoxy-Log-Parser can gather some connection statistics.
+
+*** Version 3.0.14 Beta ***
+
+- The latency is taken into account when evaluating whether or not to
+ reuse a connection. This should significantly reduce the number of
+ connections problems several users reported.
+- If the server doesn't specify how long the connection stays alive,
+ Privoxy errs on the safe side of caution and assumes it's only a second.
+- The error pages for connection timeouts or missing server data use a
+ Last-Modified date in the past. Retry attempts are detected and Privoxy
+ removes the If-Modified-Since header to prevent the server from responding
+ with status code 304 in which case the client would reuse the error message.
+- Setting keep-alive-timeout to 0 disables keep-alive support. Previously
+ Privoxy would claim to allow persistence but not reuse the connection.
+- Pipelined requests are less likely to be mistaken for the request
+ body of the previous request. Note that Privoxy still has no real
+ pipeline support and will either serialize pipelined requests or
+ drop them in which case the client has to resent them.
+- Fixed a crash on some Windows versions when header randomization
+ is enabled and the date couldn't be parsed.
+- Privoxy's keep-alive timeout for the current connection is reduced
+ to the one specified in the client's Keep-Alive header.
+- For HTTP/1.1 requests, Privoxy implies keep-alive support by not
+ setting any Connection header instead of using 'Connection: keep-alive'.
+- If the socket isn't reusable, Privoxy doesn't temporarily waste
+ a socket slot to remember the connection.
+- If keep-alive support is disabled but compiled in, the client's
+ Keep-Alive header is removed.
+- Fixed a bug on mingw32 where downloading large files failed if
+ keep-alive support was enabled.
+- Fixed a bug that (at least theoretically) could cause log
+ timestamps to be occasionally off by about a second.
+- No Proxy-Connection header if added if there already is one.
+- The configure script respects the $PATH variable when searching
+ for groups and id.
+
+*** Version 3.0.13 Beta ***
+
+- Added IPv6 support. Thanks to Petr Pisar who not only provided
+ the initial patch but also helped a lot with the integration.
+- Added client-side keep-alive support.
+- The connection sharing code is only used if the connection-sharing
+ option is enabled.
+- The max-client-connections option has been added to restrict
+ the number of client connections below a value enforced by
+ the operating system.
+- Fixed a regression reintroduced in 3.0.12 that could cause
+ crashes on mingw32 if header date randomization was enabled.
+- Compressed content with extra fields couldn't be decompressed
+ and would get passed to the client unfiltered. This problem
+ has only be detected through statical analysis with clang as
+ nobody seems to be using extra fields anyway.
+- If the server resets the Connection after sending only the headers
+ Privoxy forwards what it got to the client. Previously Privoxy
+ would deliver an error message instead.
+- Error messages in case of connection timeouts use the right
+ HTTP status code.
+- If spawning a child to handle a request fails, the client
+ gets an error message and Privoxy continues to listen for
+ new requests right away.
+- The error messages in case of server-connection timeouts or
+ prematurely closed server connections are now template-based.
+- If zlib support isn't compiled in, Privoxy no longer tries to
+ filter compressed content unless explicitly asked to do so.
+- In case of connections that are denied based on ACL directives,
+ the memory used for the client IP is no longer leaked.
+- Fixed another small memory leak if the client request times out
+ while waiting for client headers other than the request line.
+- The client socket is kept open until the server socket has
+ been marked as unused. This should increase the chances that
+ the still-open connection will be reused for the client's next
+ request to the same destination. Note that this only matters
+ if connection-sharing is enabled.
+- A TODO list has been added to the source tarball to give potential
+ volunteers a better idea of what the current goals are. Donations
+ are still welcome too: http://www.privoxy.org/faq/general.html#DONATE
+
+*** Version 3.0.12 ***
+
+- The socket-timeout option now also works on platforms whose
+ select() implementation modifies the timeout structure.
+ Previously the timeout was triggered even if the connection
+ didn't stall. Reported by cyberpatrol.
+- The Connection: keep-alive code properly deals with files
+ larger than 2GB. Previously the connection was closed too
+ early.
+- The content length for files above 2GB is logged correctly.
+- The user-manual directive on the show-status page links to
+ the documentation location specified with the directive,
+ not to the Privoxy website.
+- When running in daemon mode, Privoxy doesn't log anything
+ to the console unless there are errors before the logfile
+ has been opened.
+- The show-status page prints warnings about invalid directives
+ on the same line as the directives themselves.
+- Fixed several justified (but harmless) compiler warnings,
+ mostly on 64 bit platforms.
+- The mingw32 version explicitly requests the default charset
+ to prevent display problems with some fonts available on more
+ recent Windows versions. Patch by Burberry.
+- The mingw32 version uses the Privoxy icon in the alt-tab
+ windows. Patch by Burberry.
+- The timestamp and the thread id is omitted in the "Fatal error"
+ message box on mingw32.
+- Fixed two related mingw32-only buffer overflows. Triggering
+ them required control over the configuration file, therefore
+ this isn't seen as a security issue.
+- In verbose mode, or if the new option --show-skipped-tests
+ is used, Privoxy-Regression-Test logs skipped tests and the
+ skip reason.
+
+*** Version 3.0.11 ***
+
+- On most platforms, outgoing connections can be kept alive and
+ reused if the server supports it. Whether or not this improves
+ things depends on the connection.
+- When dropping privileges, membership in supplementary groups
+ is given up as well. Not doing that can lead to Privoxy running
+ with more rights than necessary and violates the principle of
+ least privilege. Users of the --user option are advised to update.
+ Thanks to Matthias Drochner for reporting the problem,
+ providing the initial patch and testing the final version.
+- Passing invalid users or groups with the --user option
+ didn't lead to program exit. Regression introduced in 3.0.7.
+- The match all section has been moved from default.action
+ to a new file called match-all.action. As a result the
+ default.action no longer needs to be touched by the user
+ and can be safely overwritten by updates.
+- The standard.action file has been removed. Its content
+ is now part of the default.action file.
+- In some situations the logged content length was slightly too low.
+- Crunched requests are logged with their own log level.
+ If you used "debug 1" in the past, you'll probably want
+ to additionally enable "debug 1024", otherwise only passed
+ requests will be logged. If you only care about crunched
+ requests, simply replace "debug 1" with "debug 1024".
+- The crunch reason has been moved to the beginning of the
+ crunch message. For HTTP URLs, the protocol is logged as well.
+- Log messages are shortened by printing the thread id on its
+ own (as opposed to putting it inside the string "Privoxy()").
+- The config option socket-timeout has been added to control
+ the time Privoxy waits for data to arrive on a socket.
+- Support for remote toggling is controlled by the configure
+ option --disable-toggle only. In previous versions it also
+ depended on the action editor and thus configuring with the
+ --disable-editor option would disable remote toggling support
+ as well.
+- Requests with invalid HTTP versions are rejected.
+- The template symbol @date@ can be used to include a date(1)-like
+ time string. Initial patch submitted by Endre Szabo.
+- Responses from shoutcast servers are accepted again.
+ Problem reported and fix suggested by Stefan.
+- The hide-forwarded-for-headers action has been replaced with
+ the change-x-forwarded-for{} action which can also be used to
+ add X-Forwarded-For headers. The latter functionality already
+ existed in Privoxy versions prior to 3.0.7 but has been removed
+ as it was often used unintentionally (by not using the
+ hide-forwarded-for-headers action).
+- A "clear log" view option was added to the mingw32 version
+ to clear out all of the lines in the Privoxy log window.
+ Based on a patch submitted by T Ford.
+- The mingw32 version uses "critical sections" now, which prevents
+ log message corruption under load. As a side effect, the
+ "no thread-safe PRNG" warning could be removed as well.
+- The mingw32 version's task bar icon is crossed out and
+ the color changed to gray if Privoxy is toggled off.
+
+*** Version 3.0.10 ***
+
+- Ordinary configuration file changes no longer cause program
+ termination on OS/2 if the name of the logfile hasn't been
+ changed as well. This regression probably crept in with the
+ logging improvements in 3.0.7. Reported by Maynard.
- The img-reorder filter is less likely to mess up JavaScript code in
img tags. Problem and solution reported by Glenn Washburn in #2014552.
+- The source tar ball now includes Privoxy-Log-Parser,
+ a syntax-highlighter for Privoxy logs. For fancy screenshots see:
+ http://www.fabiankeil.de/sourcecode/privoxy-log-parser/
+ Documentation is available through perldoc(1).
*** Version 3.0.9 Beta ***
forbidden characters like dots.
- New trust entries are saved with a comment that contains the
trusted referring URL (Suggested by Daniel Griscom).
-- Filter descriptions are HTML encoded automatically.
+- Filter descriptions are HTML encoded automatically.
- New config option "split-large-forms" to work
around a browser bug that caused IE6 and IE7 to ignore
the Submit button on the edit-actions-for-url CGI page.
Privoxy detection "attack". Note that detecting Privoxy is
still possible through other ways and Privoxy was never intended
to be invisible anyway.
-- Added support for AmigaOS 4, fixed build for AmigaOS 3.x.
+- Added support for AmigaOS 4, fixed build for AmigaOS 3.x.
- The show-url-info CGI page displays a warning if Privoxy
is currently toggled off.
- The show-status CGI page suppresses the edit button
- for action files if Privoxy has no write access.
+ for action files if Privoxy has no write access.
- Most CGI error pages react properly to HEAD requests.
- Requests with RFC 3253 HTTP methods (used by Subversion)
are accepted. (Patch provided by Petr Kadlec)
- Improved the filters img-reorder, js-annoyances, webbugs,
banners-by-size, banners-by-link and ie-exploits to make them
less likely to break anything.
-- Removed outdated URL patterns in default.action and added new ones.
+- Removed outdated URL patterns in default.action and added new ones.
- Added redirection from http://p.p/user-manual to http://p.p/user-manual/
- Changed webinterface default values for hide-user-agent, hide-referrer
and set-image-blocker.
-
+
*** Version 3.0.5 Beta ***
- Windows version can be installed/started as a service.
- Windows icon stays blue when Privoxy is idle, green when busy.
- Integrated Fabian Keil's extensive patch. See:
- http://www.fabiankeil.de/sourcecode/privoxy/. Includes the
- following new or significantly improved actions (among many
+ http://www.fabiankeil.de/sourcecode/privoxy/. Includes the
+ following new or significantly improved actions (among many
other improvements):
content-type-overwrite{}
- Added jpeg filtering to defend against MS jpeg vulnerability MS04-028
with the new inspect-jpegs action.
- Removed the "arbitrary" 1000 filter limit - addresses tracker #911950
-- Thanks to Jindrich Makovicka for a race condition fix for the log
+- Thanks to Jindrich Makovicka for a race condition fix for the log
file. The race condition remains for non-pthread implementations.
Reference patch #1175720. Various other logging enhancements.
- A pile of assorted bug fixes, memory leaks, enhancements, etc.
- Moved Actions file reporting mechanism to SF tracker.
-- Two new options for config: enable-remote-http-toggle and
+- Two new options for config: enable-remote-http-toggle and
forwarded-connect-retries.
- Trap unsupported FTP requests.
- Let text/xml be filtered.
- Numerous updates to default.action
-- Increase the compiled in limit of trusted referrers from 64 to 512
+- Increase the compiled in limit of trusted referrers from 64 to 512
(for trustfile users).
*** Version 3.0.3 ***
- Workarounds for client (iTunes etc) and server (PHP < 4.2.3) bugs
including the notorious "blank page" problem.
- Various filter improvements; most notably the unsolicited-popups
- filter became less destructive
+ filter became less destructive
- Major revamp of the actions file
-
+
*** Version 3.0.2 ***
- Fixed two memory leaks, one serious
- Fixed bug in pcrs which could cause crashes with user-defined filters
- Fixed bug in domain name matching
-- Assorted small fixes (Win32 menu, CGI URL editor, ..)
+- Assorted small fixes (Win32 menu, CGI URL editor, ..)
- Added basic support for the OPTIONS and TRACE http methods
- Added workaround for Bug in Mac OSX that made Privoxy crash occasionally
- Refined the default action file through >400 items of user feedback
- Replaced filter "popups" by choice between two modes:
- "unsolicited-popups" tries to catch only the unsolicited ones
- "all-popups" tries to kill them all (as before)
- - New filter "tiny-textforms" Help those tiny or hard-wrap textareas.
+ - New filter "tiny-textforms" Help those tiny or hard-wrap textareas.
- New filter "jumping-windows" that prevents windows from resizing
and moving themselves
- New filter "demoronizer" which fixes MS's abuse of std charsets
- Added quicktime-kioskmode filter and improved frameset-borders
- Updated default.action based on latest feedback
- New PDF doc build process
-- Add a user contrib module to cvs:
+- Add a user contrib module to cvs:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/contrib/
*** Version 2.9.18 ***
- Three filters fixed (again!)
- Assorted small fixes and doc enhancements
-*** Version 2.9.16 ***
+*** Version 2.9.16 ***
- Major revamp of default.action to get rid of years of cruft.
- Same for default.filter
- user-manual directive added to config for help links from within CGI
editor.
- Multiple actions files can now be specified in config.
-- Actions files are changed to: default.action, standard.action, and
+- Actions files are changed to: default.action, standard.action, and
user.action. user.action is for personal/local configuration.
- The usual many small and miscellaneous bug and security fixes.
-*** Version 2.9.14 Beta ***
+*** Version 2.9.14 Beta ***
- Fix Solaris compile problem (gateway.h and filters.h)
- Makefile fixes for Solaris, FreeBSD (?)
- #include mechansim for common text in templates
- Various other minor fixes.
-*** Version 2.9.13 Beta ***
+*** Version 2.9.13 Beta ***
-- *NEWS*: The project has been renamed to Privoxy! The new name is
+- *NEWS*: The project has been renamed to Privoxy! The new name is
reflected throughout (file locations, etc).
-- ijb.action is now default.action. re_filterfile is now
+- ijb.action is now default.action. re_filterfile is now
default.filter.
- http://i.j.b/ is now http://p.p/
-- The 'logo' option for replacing ad iamges is removed now. 'Pattern'
+- The 'logo' option for replacing ad iamges is removed now. 'Pattern'
(checkerboard) is now the default.
- RPM spec file make over.
-*** Version 2.9.12 Beta ***
+*** Version 2.9.12 Beta ***
-- **READ**: The default listening PORT is NOW 8118!!! Changed from
- 8000 due to conflict with NAS (Network Audio Server, whatever that
+- **READ**: The default listening PORT is NOW 8118!!! Changed from
+ 8000 due to conflict with NAS (Network Audio Server, whatever that
is.)
- More CGI actions editor fixes and improvements.
- Win32 command line fix ups.
-- re_filterfile now has modular sections that can be activated on a
+- re_filterfile now has modular sections that can be activated on a
per site basis. Some new goodies there too.
- +filter now takes arguments to match FILTER sections in re_filterfile
- for even more flexibility.
-- Added a new image blocker option: +image-blocker{pattern}, which
+ for even more flexibility.
+- Added a new image blocker option: +image-blocker{pattern}, which
displays a checkerboard patthern and scales better than the logo.
- PNG images will be used in place of GIF for JB built-in images
if configured with --enable-no-gif.
- CGI Editor works on OS/2 now.
- Fix restart failure where sockets were in TIME_WAIT.
- Fixes for actions cgi editor, make sure we have right file.
-- A --pidfile command line option now, in addition to --help,
+- A --pidfile command line option now, in addition to --help,
--version, --no-daemon, --user and configfile. --no-daemon replaces
- the former -d option and _DEBUG define. --user will drop privileges
+ the former -d option and _DEBUG define. --user will drop privileges
to the specified user.
- Signal handling cleanups (*nix).
- CGI actions editor improvements and fixes.
- Error handling improvements, especially out of memory.
-- Default re_filterfile fix that caused spurious IJB logos
+- Default re_filterfile fix that caused spurious IJB logos
(instead of 'blank').
- configure.in threading fixes for Solaris.
- Various other minor fixes.
*** Version 2.9.11 Beta Changes ***
-- Add "session" cookie concept where cookies exist for the life
-of that browser session only (ie never goes to disk).
+- Add "session" cookie concept where cookies exist for the life
+ of that browser session only (ie never goes to disk).
- Checks for correct header length.
- Fix user:pass@host.domain.com auth bug.
- Better signal handling on *nix.
- Fix CFLAGS hard-coded in configure.in
-- Fix threading bug re: gethostbyname() that caused random
-URLs to fail in some cases.
+- Fix threading bug re: gethostbyname() that caused random
+ URLs to fail in some cases.
*** Version 2.9.11 Alpha Changes ***
and the home page:
http://ijbswa.sourceforge.net/
... and various URLs which will be intercepted by Junkbuster anyway.
-TODO: Still need to do something with the URLs in Junkbuster Corp's
+TODO: Still need to do something with the URLs in Junkbuster Corp's
copyright/trademark notice on the bottom of the show-proxy-args page.
- PCRE or GNU Regex is now a #define option.
patch war ;-)
- Cut the credit for the ยง-referrer-option from the config file,
that Stefan had placed there.
-- Improved the re_filterfile
+- Improved the re_filterfile
*** Version 2.9.0 pre-Alpha Changes ***
- Now use PCRE, not GNU REGEX. I have not yet had chance to check the
syntax of the block/image/cookie file to ensure that they match what
is expected - however they seem to work.
-- Replaced "configure" script with one generated by "autoconf". Also
-use a header "config.h" (was ijbconfig.h in my previous release) for
-the #defines. "config.h" is now generated with "autoheader" from
+- Replaced "configure" script with one generated by "autoconf". Also
+use a header "config.h" (was ijbconfig.h in my previous release) for
+the #defines. "config.h" is now generated with "autoheader" from
"acconfig.h" and "configure.in". (Note that to install you do not
need autoconf or autoheader - just run "./configure".)
To see command-line options, run "./configure --help".
popup file, conditional image file, and integration of popup code.
- ACL, Jar and trust files conditionally compiled.
- New source file headers.
-- Various cosmetic changes. (But I have not consistently ordered the
+- Various cosmetic changes. (But I have not consistently ordered the
config files - I think that's worthwhile, but it's 1am and I want to
get this released!)
- RCS tags on .h files.
- Version number changes to 2.9.0
-
----------------------------------------------------------------------
-Copyright : Written by and Copyright (C) 2001-2008 the SourceForge
+Copyright : Written by and Copyright (C) 2001-2010 the
Privoxy team. http://www.privoxy.org/
Based on the Internet Junkbuster originally written
- by and Copyright (C) 1997 Anonymous Coders and
+ by and Copyright (C) 1997 Anonymous Coders and
Junkbusters Corporation. http://www.junkbusters.com/
- This program is free software; you can redistribute it
+ This program 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 2 of the License, or (at
http://www.gnu.org/copyleft/gpl.html
or write to the Free Software Foundation, Inc., 59
Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Note that parts of Privoxy are under licenses that are
- GPL-compatible but less restrictive - for details see
- Privoxy's source code. The Privoxy team doesn't hold the
- copyright for these parts and doesn't relicense them either.
- You are free to extract them again to distribute them under
- their own license.
-
-set vi:tw=68