Move the bugs that affect all builds to the beginning of the list
[privoxy.git] / ChangeLog
index 8d463df..51ed453 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,23 +14,23 @@ ChangeLog for Privoxy
     It was broken since their introduction in 2009. The calculated latency
     for most connections would be 0 in which case the timeout detection
     failed to account for the real latency.
-  - Fix a Windows-specific log viewer thread safety issue.
+  - Reject URLs with invalid port. Previously they were parsed incorrectly and
+    characters between the port number and the first slash were silently
+    dropped as shown by curl test 187.
+  - The default-server-timeout and socket-timeout directives accept 0 as
+    valid value.
+  - Fix a race condition on Windows that could cause Privoxy to become
+    unresponsive after toggling it on or off through the taskbar icon.
     Reported by Tim H. in #3525694.
-  - Let fatal_error() write to the logfile right away, before showing the
-    Windows-specific error message which blocks until the user acknowledges
-    it, thus complicating automatic error detection.
-    Reported by Adriaan in #3593603.
-  - Fix the --disable-ipv6-support configure option for the Windows platform.
-  - In socks5_connect(), do not try to print a negative number of socks
-    response bytes if the read() for the socks5 negotiation failed
-    completely. It's an API violation and can trigger an assert() in debug
-    builds with "debug 2" enabled. Except for the assert(), log_error()
-    already handled negative %N values gracefully so this commit only makes a
-    difference for debug builds.
+  - Fix the compilation on Windows when configured without IPv6 support.
+  - Fix an assertion that could cause debug builds to abort() in case of
+    socks5 connection failures with "debug 2" enabled.
   - Fix an assertion that could cause debug builds to abort() if a filter
     contained nul bytes in the replacement text.
 
 - General improvements:
+  - Significantly improved keep-alive support for both client and server
+    connections.
   - New debug log level 65536 which logs all actions that were applied to each
     request that Privoxy acts upon.
   - New directive client-header-order can be used to forward client headers in
@@ -53,7 +53,6 @@ ChangeLog for Privoxy
     10 to 30 (each). It doesn't significantly affect Privoxy's memory usage
     and recompiling wasn't an option for all Privoxy users that reached the
     limit.
-  - Significantly improved reuse of open connections.
   - Add support for chunk-encoded client request bodies. Previously
     chunk-encoded request bodies weren't guaranteed to be forwarded correctly,
     so this can also be considered a bug fix although chunk-encoded request
@@ -66,46 +65,21 @@ ChangeLog for Privoxy
     intentions. When looking at the response headers alone, it previously
     wasn't obvious from the client's perspective that no additional responses
     should be expected.
-  - Reject URLs with invalid port. Previously they were parsed incorrectly and
-    characters between the port number and the first slash were silently
-    dropped as shown by curl test 187.
   - Stop considering client sockets tainted after receving a request with body.
     It hasn't been necessary for a while now and unnecessarily causes test
     failures when using curl's test suite.
   - Allow HTTP/1.0 clients to signal interest in keep-alive through the
     Proxy-Connection header. While such client are rare in the real world, it
     doesn't hurt and couple of curl tests rely on it.
-  - Only remove duplicated headers when filters are enabled. If they are not it
-    doesn't cause ill effects and the user might not want it. While at it,
-    downgrade the removal message to LOG_LEVEL_HEADER to clarify that it's not
+  - Only remove duplicated Content-Type headers when filters are enabled.
+    If they are not it doesn't cause ill effects and the user might not want it.
+    Downgrade the removal message to LOG_LEVEL_HEADER to clarify that it's not
     an error in Privoxy and is unlikely to cause any problems in general.
     Anonymously reported in #3599335.
-  - Accept a default-server-timeout of 0. It's the default after all.
-  - Accept a socket-timeout value of 0 seconds. Impatience isn't necessarily a
-    syntax problem.
   - Set the socket option SO_LINGER for the client socket in
     accept_connection(). This should further reduce the chances of the client
     getting an incomplete response, even though Privoxy wrote it in its
     entirety to the socket.
-  - Let serve() wait for keep-alive-timeout seconds for new requests. The
-    server connection timeout is no longer relevant.
-  - Improve connection handling when connection sharing is enabled.
-  - Do not keep the client connection open if it has to be closed to mark the
-    end of the response.
-  - Shorten ssplit()'s prototype by removing the last two arguments. We always
-    want to skip empty fields and ignore leading delimiters, so having
-    parameters for this only complicates the API.
-  - Use an enum for the type of the action value.
-  - Rename action_name's member takes_value to value_type as it isn't used as
-    boolean.
-  - Turn family mismatches in match_sockaddr() into fatal errors
-  - Let enlist_unique_header() verify that the caller didn't pass a header
-    containing either \r or \n.
-  - Change the hashes used in load_config() to unsigned int.
-    That's what hash_string() actually returns and using a potentiallly larger
-    type is at best useless.
-  - Use privoxy_tolower() instead of vanilla tolower() with manual casting of
-    the argument.
   - Move several variable declarations to the beginning of their code block.
     It's how we usually do it and is apparently also required when compiling
     with gcc 2.95. Initial patch submitted by Simon South in #3564815.
@@ -120,12 +94,15 @@ ChangeLog for Privoxy
     closes its side of the connection without sending a request line, do not
     send the CLIENT_CONNECTION_TIMEOUT_RESPONSE, but report the condition
     properly.
+  - Allow closing curly braces as part of action values as long as they are
+    escaped.
+  - On Windows, the logfile is now written before showing the GUI error
+    message which blocks until the user acknowledges it.
+    Reported by Adriaan in #3593603.
 
 - Action file improvements:
   - Remove the comment that indicated that updated versions of this file are
     released on their own.
-  - Allow closing curly braces as part of action values as long as they are
-    escaped.
   - Block 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'
   - Unblock 'adjamblog.wordpress.com/' and 'adjamblog.files.wordpress.com/'.
     Reported by Ryan Farmer in #3496116.
@@ -141,37 +118,37 @@ ChangeLog for Privoxy
   - Block '/openx/www/delivery/'.
   - Disable fast-redirects for '.googleapis.com/'.
   - Block 'imp.double.net/'. Reported by David Bo in #3070411.
-  - Block 'gm-link.com/' whis is used for email tracking. Reported by David Bo
-    in #1812733.
+  - Block 'gm-link.com/' whis is used for email tracking.
+    Reported by David Bo in #1812733.
   - Verify that requests to "bwp." are blocked. URL taken from #1736879
     submitted by Francois Marier.
   - Block '/.*bannerid='. Reported by Adam Piggott in #2975779.
-  - Block 'cltomedia.info/delivery/' and '.adexprt.com/'. Anonymously reported
-    in #2965254.
+  - Block 'cltomedia.info/delivery/' and '.adexprt.com/'.
+    Anonymously reported in #2965254.
   - Block 'de17a.com/'. Reported by David Bo in #3061472.
   - Block 'oskar.tradera.com/'. Reported by David Bo in #3060596.
   - Block '/scripts/webtrends\.js'. Reported by johnd16 in #3002729.
   - Block requests for 'pool.*.adhese.com/'. Reported by johnd16 in #3002716.
-  - Update path pattern for Coremetrics and add tests. Pattern and URLs
-    submitted by Adam Piggott #3168443.
-  - Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'. Reported by
-    David Bo in #3268832.
+  - Update path pattern for Coremetrics and add tests.
+    Pattern and URLs submitted by Adam Piggott #3168443.
+  - Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'.
+    Reported by David Bo in #3268832.
   - Unblock '.conrad.se/newsletter/banners/'. Reported by David Bo in #3413824.
   - Block '.tynt.com/'. Reported by Dan Stahlke in #3421767.
   - Unblock '.bbci.co.uk/radio/'. Reported by Adam Piggott in #3569603.
-  - Block requests to 'service.maxymiser.net/'. Reported by johnd16 in #3118401
-    (with a previous URL).
+  - Block requests to 'service.maxymiser.net/'.
+    Reported by johnd16 in #3118401 (with a previous URL).
   - Disable fast-redirects for Google's "let's pretend your computer is
     infected" page.
-  - Unblock '/.*download' to resolve actionsfile feedback #3498129 submitted by
-    Steven Kolins (soundcloud.com not working).
-  - Unblock '.wlxrs.com/' to resolve actionsfile feedback #3413827 (hotmail.com
-    not working) submitted by David Bo.
-  - Add two unblock patterns for popup radio and TV players. Submitted by Adam
-    Piggott in #3596089.
+  - Unblock '/.*download' to resolve actionsfile feedback #3498129.
+    Submitted by Steven Kolins (soundcloud.com not working).
+  - Unblock '.wlxrs.com/' which is required by hotmail.com.
+    Fixes #3413827 submitted by David Bo.
+  - Add two unblock patterns for popup radio and TV players.
+    Submitted by Adam Piggott in #3596089.
 
 - Filter file improvements & bug fixes:
-  - Add a referer tagger
+  - Add a referer tagger.
   - Reduce the likelihood that the google filter messes up HTML-generating
     JavaScript. Reported by Zeno Kugy in #3520260.
 
@@ -197,9 +174,9 @@ ChangeLog for Privoxy
   - Various grammar and spelling corrections
   - Add a client-header-tagger{} example for disabling filtering for range
     requests.
-  - Correct a URL the "Privoxy with Tor" FAQ
+  - Correct a URL in the "Privoxy with Tor" FAQ.
   - Spell 'refresh-tags' correctly. Reported by Don in #3571927.
-  - Sort manpage options alphabetically
+  - Sort manpage options alphabetically.
   - Remove an incorrect sentence in the toggle section. The toggle state
     doesn't affect whether or not the Windows version uses the tray icon and
     having to toggle Privoxy off to not show the icon makes no sense anyway.
@@ -259,6 +236,20 @@ ChangeLog for Privoxy
   - Fix a typo in the no-zlib-support complaint. Patch submitted by Matthew
     Fischer in #3507304.
   - Update an error message that still tried to print directive_hash as long
+  - Shorten ssplit()'s prototype by removing the last two arguments. We always
+    want to skip empty fields and ignore leading delimiters, so having
+    parameters for this only complicates the API.
+  - Use an enum for the type of the action value.
+  - Rename action_name's member takes_value to value_type as it isn't used as
+    boolean.
+  - Turn family mismatches in match_sockaddr() into fatal errors.
+  - Let enlist_unique_header() verify that the caller didn't pass a header
+    containing either \r or \n.
+  - Change the hashes used in load_config() to unsigned int.
+    That's what hash_string() actually returns and using a potentiallly larger
+    type is at best useless.
+  - Use privoxy_tolower() instead of vanilla tolower() with manual casting of
+    the argument.
 
 - Privoxy-Regression-Test:
   - Various grammar and spelling corrections in documentation and code.
@@ -271,7 +262,7 @@ ChangeLog for Privoxy
   - Remove the "Copyright" line from print_version(). When using --help, every
     line of screen space matters and thus shouldn't be wasted on things the
     user doesn't care about.
-  - Fix comment typos
+  - Fix comment typos.
   - Add an 'Overwrite condition' directive to skip any matching tests before
     it. As it has a global scope, using it is more convenient than clowning
     around with the Ignore directive.