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.
+ - 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.
+ - 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
difference for debug builds.
- 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
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
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.
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.
- 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.
- 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.
- 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.
- 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.