Properly detect section titles with two-digit minor numbers
[privoxy.git] / ChangeLog
index ef74d54..684e6c0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,54 +1,53 @@
 --------------------------------------------------------------------
 ChangeLog for Privoxy
 --------------------------------------------------------------------
-*** Version 3.0.20 Beta ***
+*** Version 3.0.20 beta ***
 
 - Bug fixes:
+  - Client sockets are now properly shutdown and drained before being
+    closed. This fixes page truncation issues with clients that aggressively
+    pipeline data on platforms that otherwise discard already written data.
+    The issue mainly affected Opera users and was initially reported
+    by Kevin in #3464439, szotsaki provided additional information to track
+    down the cause.
   - Fix latency calculation for shared connections (disabled by default).
     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:
-  - 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
-    request has been served. At the moment this is only done if the current
-    request is known to have no body.
-  - New --config-test option lets Privoxy exit after checking whether or not
+  - Significantly improved keep-alive support for both client and server
+    connections.
+  - 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 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.
-  - Increase the maximum number of actions files from 10 to 30. This is set by
-    the compiler directive MAX_AF_FILES so could always be modified by
-    recompilation, but the default value was too low since an unused file slot
-    is pretty inexpensive.
-  - Significantly improved reuse of open connections.
+    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
+    limit.
   - 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
@@ -60,75 +59,47 @@ ChangeLog for Privoxy
   - After preventing the client from pipelining, don't signal keep-alive
     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. This might improve compatibility with Opera (#3464439).
-  - Use new drain_and_close_socket() when closing client sockets in serve().
-    Hopefully this fixes the page truncation issue reported with Opera in
-    #3464439. Apparently on some platforms immediately closing a client socket
-    with both unread and written-but-not-yet-transmitted data may result in the
-    connection being torn down prematurely, in which case the client ends up
-    with an incomplete response. To prevent this, drain_and_close_socket()
-    shuts down our side of the connection (on platforms with shutdown()),
-    drains the unread data on the socket and finally calls close_socket().
-  - 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.
+    should be expected.
+  - Stop considering client sockets tainted after receiving 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.
+  - 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
     properly.
-
-- 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.
+  - 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 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.
@@ -144,37 +115,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/' which 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.
 
@@ -200,20 +171,18 @@ 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.
+    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.
@@ -221,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
@@ -255,77 +222,57 @@ ChangeLog for Privoxy
   - Various data type corrections.
   - Change visibility of several code segments when compiling without
     FEATURE_CONNECTION_KEEP_ALIVE enabled for clarity.
-  - In pcrs_get_delimiter(), do not use delimiters ouside the ASCII range.
+  - In pcrs_get_delimiter(), do not use delimiters outside the ASCII range.
     Fixes a clang complaint.
   - Fix an error message in get_last_url() nobody is supposed to see.
     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.
+  - 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 potentially 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
@@ -338,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.
@@ -349,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.
@@ -943,7 +887,7 @@ ChangeLog for Privoxy
 - The scripts in the tools directory treat unknown parameters
   as fatal errors.
 
-*** Version 3.0.15 Beta ***
+*** 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
@@ -989,7 +933,7 @@ ChangeLog for Privoxy
 - Privoxy-Regression-Test supports redirect tests.
 - Privoxy-Log-Parser can gather some connection statistics.
 
-*** Version 3.0.14 Beta ***
+*** 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
@@ -1024,7 +968,7 @@ ChangeLog for Privoxy
 - The configure script respects the $PATH variable when searching
   for groups and id.
 
-*** Version 3.0.13 Beta ***
+*** 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.
@@ -1168,7 +1112,7 @@ ChangeLog for Privoxy
   http://www.fabiankeil.de/sourcecode/privoxy-log-parser/
   Documentation is available through perldoc(1).
 
-*** Version 3.0.9 Beta ***
+*** Version 3.0.9 beta ***
 
 - Added SOCKS5 support (with address resolution done by
   the SOCKS5 server). Patch provided by Eric M. Hopper.
@@ -1282,7 +1226,7 @@ ChangeLog for Privoxy
   config.txt referenced a nonexisting file
 - Minor documentation fixes.
 
-*** Version 3.0.7 Beta ***
+*** Version 3.0.7 beta ***
 
 - Added zlib support to filter content with gzip and deflate
   encoding. (Patch provided by Wil Mahan)
@@ -1438,7 +1382,7 @@ ChangeLog for Privoxy
 - Changed webinterface default values for hide-user-agent, hide-referrer
   and set-image-blocker.
 
-*** Version 3.0.5 Beta ***
+*** 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.
@@ -1568,7 +1512,7 @@ ChangeLog for Privoxy
   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 (?)
@@ -1582,7 +1526,7 @@ ChangeLog for Privoxy
 - #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
   reflected throughout (file locations, etc).
@@ -1594,7 +1538,7 @@ ChangeLog for Privoxy
 - 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
@@ -1631,7 +1575,7 @@ ChangeLog for Privoxy
 - Various other minor fixes.
 
 
-*** Version 2.9.11 Beta Changes ***
+*** 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).
@@ -1754,7 +1698,7 @@ being a mix of "U.S. English", "U.K. English" and "Irish English".
 
 
 ----------------------------------------------------------------------
-Copyright   :  Written by and Copyright (C) 2001-2010 the
+Copyright   :  Written by and Copyright (C) 2001-2013 the
                Privoxy team. http://www.privoxy.org/
 
                Based on the Internet Junkbuster originally written