Properly align the 3.0.19 header so the SGML converters notices it
[privoxy.git] / ChangeLog
index e296629..fb01b17 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,45 +14,36 @@ 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.
+  - 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.
   - Fix the compilation on Windows when configured without IPv6 support.
-  - 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 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.
-  - 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.
 
 - 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
-    a different order than that in which they arrived.
-  - New directive tolerate-pipelining can be used to enable client-side
-    pipelining. If enabled (3.0.20 beta enables it by default), Privoxy will
-    keep pipelined client requests around to deal with them once the current
+  - New debug log level 65536 which logs all actions that were applied to
+    the request.
+  - New directive client-header-order to forward client headers in a
+    different order than the one in which they arrived.
+  - New directive tolerate-pipelining to allow client-side pipelining.
+    If enabled (3.0.20 beta enables it by default), Privoxy will keep
+    pipelined client requests around to deal with them once the current
     request has been served.
-  - New --config-test option lets Privoxy exit after checking whether or not
+  - New --config-test option to let Privoxy exit after checking whether or not
     the configuration seems valid. The limitations noted in TODO #22 and #23
-    still apply. Logging the problem to the logfile if one is configured and
-    --no-daemon isn't used could be considered non-intuitive and might also
-    clobber messages emitted by an already running instance. Based on a patch
-    by Ramkumar Chinchani.
-  - Add limit-cookie-lifetime{} action. It can be used to let cookies expire
-    before the end of the session. limit-cookie-lifetime{0} creates session
-    cookies and can thus replace the session-cookies-only action in the future.
-    Idea originally suggested by Rick Sykes in #1049575.
+    still apply. Based on a patch by Ramkumar Chinchani.
+  - New limit-cookie-lifetime{} action to let cookies expire before the end
+    of the session. Suggested by Rick Sykes in #1049575.
   - Increase the hard-coded maximum number of actions and filter files from
     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
@@ -80,20 +71,16 @@ ChangeLog for Privoxy
     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.
-  - 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.
+  - Set the socket option SO_LINGER for the client socket.
   - 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.
-  - Optionally let parse_header_time() sanity check strptime() results before
-    trusting them. Broken strptime() implementations have caused problems in
-    the past and the most recent offender seems to be FreeBSD's libc:
-    http://www.freebsd.org/cgi/query-pr.cgi?pr=173421
-  - Attempt to work around (or at least reduce the) video playback issues with
-    various Apple clients as reported in #3426305. In client_range(), let
-    headers pass if the range starts at the beginning.
+    It's required when compiling with gcc 2.95 which is still used on some
+    platforms. Initial patch submitted by Simon South in #3564815.
+  - Optionally try to sanity-check strptime() results before trusting them.
+    Broken strptime() implementations have caused problems in the past and
+    the most recent offender seems to be FreeBSD's libc (standards/173421).
+  - When filtering is enabled, let Range headers pass if the range starts at
+    the beginning. This should work around (or at least reduce ) the video
+    playback issues with various Apple clients as reported by Duc in #3426305.
   - Do not confuse a client hanging up with a connection time out. If a client
     closes its side of the connection without sending a request line, do not
     send the CLIENT_CONNECTION_TIMEOUT_RESPONSE, but report the condition
@@ -103,10 +90,16 @@ ChangeLog for Privoxy
   - 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.
+  - Remove an unreasonable parameter limit in the CGI interface. The new
+    parameter limit depends on the memory available and is currently unlikely
+    to be reachable, due to other limits in both Privoxy and common clients.
+    Reported by Andrew on ijbswa-users@.
+  - Decrease the chances of parse failures after requests with unsupported
+    methods were sent to the CGI interface.
 
 - Action file improvements:
-  - Remove the comment that indicated that updated versions of this file are
-    released on their own.
+  - Remove the comment that indicated that updated default.action versions
+    are released on their own.
   - Block 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'
   - Unblock 'adjamblog.wordpress.com/' and 'adjamblog.files.wordpress.com/'.
     Reported by Ryan Farmer in #3496116.
@@ -182,16 +175,14 @@ ChangeLog for Privoxy
   - Spell 'refresh-tags' correctly. Reported by Don in #3571927.
   - 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.
+    doesn't affect whether or not the Windows version uses the tray icon.
     Reported by Zeno Kugy in #3596395.
-  - Add the DNT header to the client-header-order example.
   - Add new contributors since 3.0.19.
 
 - Log message improvements:
   - When stopping to watch a client socket due to pipelining, additionally log
     the socket number.
-  - log the client socket and its condition before closing it. This makes it
+  - Log the client socket and its condition before closing it. This makes it
     more obvious that the socket actually gets closed and should help when
     diagnosing problems like #3464439.
   - In case of SOCKS5 failures, do not explicitly log the server's response.
@@ -199,9 +190,7 @@ ChangeLog for Privoxy
     "debug 32768" anyway. This reverts v1.81 and the follow-up bug fix v1.84.
   - Relocate the connection-accepted message from listen_loop() to serve().
     This way it's printed by the thread that is actually serving the
-    connection which is nice when grepping for thread ids in log files. While
-    at it, use an upper-case first character which is more consistent with the
-    other log messages.
+    connection which is nice when grepping for thread ids in log files.
 
 - Code cleanups:
   - Remove compatibility layer for versions prior to 3.0 since it has been
@@ -239,7 +228,6 @@ ChangeLog for Privoxy
     Reported by Matthew Fischer in #3507301.
   - 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.
@@ -249,75 +237,42 @@ ChangeLog for Privoxy
   - 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.
+  - 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.
+  - Catch ssplit() failures in parse_cgi_parameters().
 
 - Privoxy-Regression-Test:
+  - 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.
+  - Log to STDOUT instead of STDERR.
+  - Include the Privoxy version in the output.
   - Various grammar and spelling corrections in documentation and code.
   - Additional tests for range requests with filtering enabled.
   - Tests with mostly invalid range request.
-  - Log to STDOUT instead of STDERR.
   - Add a couple of hide-if-modified-since{} tests with different date formats.
   - Cleaned up the format of the regression-tests.action file to match the
     format of default.action.
   - 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.
-  - 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.
-  - Include the Privoxy version in the output.
 
 - Privoxy-Log-Parser:
   - Improve the --statistics performance by skipping sanity checks for input
-    that shouldn't affect the results anyway. In my non-scientific benchmarks
-    this reduces the runtime by about 45%. Also add a --strict-checks option
+    that shouldn't affect the results anyway. Add a --strict-checks option
     that enables some of the checks again, just in case anybody cares.
-  - Accept and highlight: Stopping to watch the client socket. There's already
-    another request waiting.
-  - Cleanup variable initialization in print_non_clf_message().
-  - Properly highlight the new log messages from get_request_line().
-  - Let get_percentage() show 0 of x as 0% even if x is 0 as well.
-  - Accept and ignore: Enlisting (sorted|left-over) header ...
-  - Accept the shiny new LOG_LEVEL_ACTIONS.
-  - Accept and highlight: Closing client socket 5. Keep-alive: 0, Socket
-    alive: 1. Data available: 0.
-  - Stop suppressing messages about accepted client connections and highlight
-    them properly.
-  - Accept and highlight: Accepted connection from 10.0.0.1 on socket 5.
-  - Accept and highlight: Continuing buffering server headers from socket 5.
-    Bytes most recently read: 498.
-  - Accept and highlight: Client request 4 arrived in time on socket 7.
-  - Accept and highlight: Closing client socket 8. Keep-alive: 1. Socket
-    alive: 0. Data available: 0. Configuration file change detected: 0.
-    Requests received: 11.
-  - Accept and highlight: Drained 180 bytes before closing socket 6.
-  - Accept and highlight the extended log message for client sockets.
-  - Accept and highlight: Tainting client socket 7 due to unread data.
-  - Accept and highlight: Optimistically sending 318 bytes of client
-    headers intended for www.privoxy.org.
-  - Accept and highlight: Client request 8 has been pipelined on socket 7 and
-    the socket is still alive.
-  - Accept: There better be a request body.
-  - Accept and highlight: Shifting 360 pipelined bytes by 360 bytes.
-  - Accept and highlight: Multiple Content-Type headers detected. Removing and
-    ignoring: Content-Type: text/html.
+  - The distribution of client requests per connection is included in
+    the --statistic output.
+  - The --accept-unknown-messages option has been removed and the behavior
+    is now the default.
+  - Accept and (mostly) highlight new log messages introduced with
+    Privoxy 3.0.20.
 
 - uagen:
-  - Bump generated Firefox version to 16.
-
-- CGI interface improvements & bug fixes:
-  - Remove an unreasonable parameter limit in parse_cgi_parameters(). The new
-    parameter limit depends on the memory available and is currently unlikely
-    to be reachable, due to other limits in both Privoxy and common clients.
-    Reported by Andrew on ijbswa-users@.
-  - Catch ssplit() failures in parse_cgi_parameters().
-  - Deal with unsupported methods sent to the CGI pages by discarding any
-    data following the headers.
+  - Bump generated Firefox version to 17.
 
 - GNUmakefile improvements:
   - The dok-tidy target no longer taints documents with a tidy-mark
@@ -330,10 +285,8 @@ ChangeLog for Privoxy
   - Let w3m itself do the line wrapping for the config file. It works better
     than fmt as it can honour pre tags causing less unintentional line breaks.
   - Ditch a pointless '-r' passed to rm to delete files.
-  - Prevent completely empty lines in configure and try to unfold
-    unintentional line breaks.
-  - Let the config-file target optimistically update the original. Most of the
-    issues are fixed now and it makes diffing with git easier.
+  - The config-file target now requires less manual intervention and updates
+    the original config.
   - Change WDUMP to generate ASCII. Add WDUMP_UTF8 to allow UTF-8 in the
     AUTHORS file so the names are right.
   - Stop pretending that lynx and links are supported for the documentation.
@@ -341,17 +294,16 @@ ChangeLog for Privoxy
 - configure improvements:
   - On Haiku, do not pass -lpthread to the compiler. Haiku's pthreads
     implementation is contained in its system library, libroot, so no
-    additional library needs to be searched. Patch submitted by Simon South in
-    #3564815.
+    additional library needs to be searched.
+    Patch submitted by Simon South in #3564815.
   - Additional Haiku-specific improvements. Disable checks intended for
     multi-user systems as Haiku is presently single-user. Group Haiku-specific
     settings in their own section, following the pattern for Solaris, OS/2 and
     AmigaOS. Add additional library-related settings to remove the need for
-    providing configure with custom LDFLAGS. Submitted by Simon South in
-    #3574538.
-  - Several improvements for clarity, diffability and logic.
+    providing configure with custom LDFLAGS.
+    Submitted by Simon South in #3574538.
 
-  *** Version 3.0.19 Stable ***
+*** Version 3.0.19 Stable ***
 
 - Bug fixes:
   - Prevent a segmentation fault when de-chunking buffered content.