X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fwebserver%2Fuser-manual%2Fwhatsnew.html;h=2dd2b62b3ac2cda2e4697e4906f10f0f1248794d;hb=7d0d8bdd53947864c64d968062ca132b65f2e162;hp=7f2a7c151016c8e2e8960ec9427c336d79d776e5;hpb=20269c138d782591788097e1dbe0906788122145;p=privoxy.git diff --git a/doc/webserver/user-manual/whatsnew.html b/doc/webserver/user-manual/whatsnew.html index 7f2a7c15..2dd2b62b 100644 --- a/doc/webserver/user-manual/whatsnew.html +++ b/doc/webserver/user-manual/whatsnew.html @@ -3,37 +3,25 @@
- -Privoxy 3.0.18 User Manual | +Privoxy 3.0.26 User Manual | ||||
---|---|---|---|---|---|
Privoxy 3.0.18 is a stable release. - The changes since 3.0.17 stable are:
+Privoxy 3.0.26 changes
If the redirect URL contains characters RFC 3986 doesn't - permit, they are (re)encoded. Not doing this makes Privoxy - versions from 3.0.5 to 3.0.17 susceptible to HTTP response - splitting (CWE-113) attacks if the - +fast-redirects{check-decoded-url} action is used.
-accept_connection(): Fix crashes with "listen-addr :8118"
-Fix a logic bug that could cause Privoxy to reuse a server - socket after it got tainted by a server-header-tagger-induced - block that was triggered before the whole server response had - been read. If keep-alive was enabled and the request following - the blocked one was to the same host and using the same - forwarding settings, Privoxy would send it on the tainted server - socket. While the server would simply treat it as a pipelined - request, Privoxy would later on fail to properly parse the - server's response as it would try to parse the unread data from - the first response as server headers for the second one. - Regression introduced in 3.0.17.
-After jbsockets.c v1.136 a valid text representation of the + host address is required for the $listen-address variable. If no + host address has been specified, use an empty string to prevent + NULL pointer dereferences.
-When implying keep-alive in client_connection(), remember that - the client didn't. Fixes a regression introduced in 3.0.13 that - would cause Privoxy to wait for additional client requests after - receiving a HTTP/1.1 request with "Connection: close" set and - connection sharing enabled. With clients which terminates the - client connection after detecting that the whole body has been - received it doesn't really matter, but with clients that don't - the connection would be kept open until it timed out.
-Fix a subtle race condition between - prepare_csp_for_next_request() and sweep() A thread preparing - itself for the next client request could briefly appear to be - inactive. If all other threads were already using more recent - files, the thread could get its files swept away under its feet. - So far this has only been reproduced while stress testing in - valgrind while touching action files in a loop. It's unlikely to - have caused any actual problems in the real world.
-Disable filters if SDCH compression is used unless filtering - is forced. If SDCH was combined with a supported compression - algorithm, Privoxy previously could try to decompress it and - ditch the Content-Encoding header even though the SDCH - compression wasn't dealt with. Reported by zebul666 in - #3225863.
-Make a copy of the --user value and only mess with that when - splitting user and group. On some operating systems modifying the - value directly is reflected in the output of ps and friends and - can be misleading. Reported by zepard in #3292710.
-If forwarded-connect-retries is set, only retry if Privoxy is - actually forwarding the request. Previously direct connections - would be retried as well.
-Fixed a small memory leak when retrying connections with IPv6 - support enabled.
-Remove an incorrect assertion in - compile_dynamic_pcrs_job_list() It could be triggered by a pcrs - job with an invalid pcre pattern (for example one that contains a - lone quantifier).
-If the --user argument user[.group] contains a dot, always - bail out if no group has been specified. Previously the intended, - but undocumented (and apparently untested), behaviour was to try - interpreting the whole argument as user name, but the detection - was flawed and checked for '0' instead of '\0', thus merely - preventing group names beginning with a zero.
-In html_code_map[], use a numeric character reference instead - of ' which wasn't standardized before XHTML 1.0.
-Fix an invalid free when compiled with - FEATURE_GRACEFUL_TERMINATION and shut down through - http://config.privoxy.org/die
-In get_actions(), fix the "temporary" backwards compatibility - hack to accept block actions without reason. It also covered - other actions that should be rejected as invalid. Reported by - Billy Crook.
+The problem was reported by Marvin Renich in Debian bug + #834941, the offending commit was tracked down by Roland in SF + Bug #902.
Privoxy can (re)compress buffered content before delivering it - to the client. Disabled by default as most users wouldn't benefit - from it.
-The +fast-redirects{check-decoded-url} action checks URL - segments separately. If there are other parameters behind the - redirect URL, this makes it unnecessary to cut them off by - additionally using a +redirect{} pcrs command. Initial patch - submitted by Jamie Zawinski in #3429848.
-When loading action sections, verify that the referenced - filters exist. Currently missing filters only result in an error - message, but eventually the severity will be upgraded to - fatal.
-Allow to bind to multiple separate addresses. Patch set - submitted by Petr Pisar in #3354485.
-Set socket_error to errno if connecting fails in - rfc2553_connect_to() Previously rejected direct connections could - be incorrectly reported as DNS issues if Privoxy was compiled - with IPv6 support.
-Adjust url_code_map[] so spaces are replaced with %20 instead - of '+' While '+' can be used by client's submitting form data, - this is not actually what Privoxy is using the lookups for. This - is more of a cosmetic issue and doesn't fix any known - problems.
-When compiled without FEATURE_FAST_REDIRECTS, do not silently - ignore +fast-redirect{} directives
-Added a workaround for GNU libc's strptime() reporting - negative year values when the parsed year is only specified with - two digits. On affected systems cookies with such a date would - not be turned into session cookies by the +session-cookies-only - action. Reported by Vaeinoe in #3403560
-Fixed bind failures with certain GNU libc versions if no - non-loopback IP address has been configured on the system. This - is mainly an issue if the system is using DHCP and Privoxy is - started before the network is completely configured. Reported by - Raphael Marichez in #3349356. Additional insight from Petr - Pisar.
-Privoxy log messages now use the ISO 8601 date format - %Y-%m-%d. It's only slightly longer than the old format, but - contains the full date including the year and allows sorting by - date (when grepping in multiple log files) without hassle.
-In get_last_url(), do not bother trying to decode URLs that do - not contain at least one '%' sign. It reduces the log noise and a - number of unnecessary memory allocations.
-In case of SOCKS5 failures, dump the socks response in the log - message.
-Simplify the signal setup in main()
-Streamline socks5_connect() slightly
-In socks5_connect(), require a complete socks response from - the server Previously Privoxy didn't care how much data the - server response contained as long as the first two bytes - contained the expected values. While at it, shrink the buffer - size so Privoxy can't read more than a whole socks response.
-In chat(), do not bother to generate a client request in case - of direct CONNECT requests. It will not be used anyway.
-Reduce server_last_modified()'s stack size.
-Shorten get_http_time() by using strftime().
-Constify the known_http_methods pointers in - unknown_method().
-Constify the time_formats pointers in parse_header_time().
-Constify the formerly_valid_actions pointers in - action_used_to_be_valid().
-Introduce a GNUMakefile MAN_PAGE variable that defaults to - privoxy.1. The Debian package uses section 8 for the man page and - this should simplify the patch.
-Deduplicate the INADDR_NONE definition for Solaris by moving - it to jbsockets.h
-In block_url(), ditch the obsolete workaround for ancient - Netscape versions that supposedly couldn't properly deal with - status code 403.
-Remove a useless NULL pointer check in load_trustfile().
-Remove two useless NULL pointer checks in - load_one_re_filterfile().
-Change url_code_map[] from an array of pointers to an array of - arrays It removes an unnecessary layer of indirection and on - 64bit system reduces the size of the binary a bit.
-Fix various typos. Fixes taken from Debian's 29_typos.dpatch - by Roland Rosenfeld.
-Add a dok-tidy GNUMakefile target to clean up the messy HTML - generated by the other dok targets.
-GNUisms in the GNUMakefile have been removed.
-Change the HTTP version in static responses to 1.1
-Synced config.sub and config.guess with upstream - 2011-11-11/386c7218162c145f5f9e1ff7f558a3fbb66c37c5.
-Add a dedicated function to parse the values of toggles. - Reduces duplicated code in load_config() and provides better - error handling. Invalid or missing toggle values are now a fatal - error instead of being silently ignored.
-Terminate HTML lines in static error messages with \n instead - of \r\n.
-Simplify cgi_error_unknown() a bit.
-In LogPutString(), don't bother looking at pszText when not - actually logging anything.
-Change ssplit()'s fourth parameter from int to size_t. Fixes a - clang complaint.
-Add a warning that the statistics currently can't be trusted. - Mention Privoxy-Log-Parser's --statistics option as an - alternative for the time being.
+Log when privoxy is toggled on or off via cgi interface.
In rfc2553_connect_to(), start setting cgi->error_message - on error
+Highlight the "Info: Now toggled " on/off log message in the + windows log viewer.
Change the expected status code returned for http://p.p/die - depending on whether or not FEATURE_GRACEFUL_TERMINATION is - available.
+Highlight the loading actions/filter file log message in the + windows log viewer.
In cgi_die(), mark the client connection for closing. If the - client will fetch the style sheet through another connection it - gets the main thread out of the accept() state and should thus - trigger the actual shutdown.
-Add a proper CGI message for cgi_die().
-Don't enforce a logical line length limit in - read_config_line()
-Slightly refactor server_last_modified() to remove useless - gmtime*() calls
+Mention client-specific tags on the toggle page as a + potentionally more appropriate alternative.
In get_content_type(), also recognize '.jpeg' as JPEG - extension
-Documentation improvements:
+Add '.png' to the list of recognized file extensions in - get_content_type()
+Update download section on the homepage. The downloads are + available from the website now.
In block_url(), consistently use the block reason "Request - blocked by Privoxy" In two places the reason was "Request for - blocked URL" which hides the fact that the request got blocked by - Privoxy and isn't necessarily correct as the block may be due to - tags.
+Add sponsor FAQ
In listen_loop(), reload the configuration files after - accepting a new connection instead of before. Previously the - first connection that arrived after a configuration change would - still be handled with the old configuration.
+Remove obsolete reference to mailing lists hosted at + SourceForge
In chat()'s receive-data loop, skip a client socket check if - the socket will be written to right away anyway. This can - increase the transfer speed for unfiltered content on fast - network connections.
+Update the "Before the Release" section of the developer + manual.
The socket timeout is used for SOCKS negotiations as well - which previously couldn't timeout.
-Infrastructure improvements:
+Don't keep the client connection alive if any configuration - file changed since the time the connection came in. This is - closer to Privoxy's behaviour before keep-alive support for - client connection has been added and also less confusing in - general.
-Add perl script to generate an RSS feed for the packages
-Treat all Content-Type header values containing the pattern - 'script' as a sign of text. Reported by pribog in #3134970.
+Submitted by "Unknown": + https://lists.privoxy.org/pipermail/privoxy-devel/2016-July/000068.html
Action file improvements:
+Build system improvements:
Moved the site-specific block pattern section below the one - for the generic patterns so for requests that are matched in - both, the block reason for the domain is shown which is usually - more useful than showing the one for the generic pattern.
-Remove -prevent-compression from the fragile alias It's no - longer used anywhere by default and isn't known to break stuff - anyway.
+strptime.h: fix a compiler warning about ambiguous else
Add a (disabled) section to block various Facebook tracking - URLs Reported by Dan Stahlke in #3421764.
+configure.in: Check for Docbook goo on the BSDs as well
Add a (disabled) section to rewrite and redirect - click-tracking URLs used on news.google.com Reported by Dan - Stahlke in #3421755.
+GNUMakefile.in: Let the dok-user target remove temporary + files
Unblock linuxcounter.net/ Reported by Dan Stahlke in - #3422612.
-Privoxy 3.0.25 beta introduces + client-specific tags and includes a couple of minor improvements. It will + be followed by a stable release in the near future.
-Block 'www91.intel.com/' which is used by Omniture. Reported - by Adam Piggott in #3167370.
-Bug fixes:
+Disable the handle-as-empty-doc-returns-ok option and mark it - as deprecated. Reminded by tceverling in #2790091.
+Always use the current toggle state for new requests. + Previously new requests on reused connections inherited the + toggle state from the previous request even though the toggle + state could have changed. Reported by Robert Klemme.
Add ".ivwbox.de/" to the "Cross-site user tracking" section. - Reported by Nettozahler in #3172525.
+Fixed two buffer-overflows in the (deprecated) static pcre + code. These bugs are not considered security issues as the input + is trusted. Found with afl-fuzz and ASAN.
Unblock and fast-redirect ".awin1.com/.*=http://" Reported by - Adam Piggott in #3170921.
-General improvements:
+Block "b.collective-media.net/".
+Added support for client-specific tags which allow Privoxy + admins to pre-define tags that are set for all requests from + clients that previously opted in through the CGI interface. They + are useful in multi-user setups where admins may want to allow + users to disable certain actions and filters for themselves + without affecting others. In single-user setups they are useful + to allow more fine-grained toggling. For example to disable + request blocking while still crunching cookies, or to disable + experimental filters only. This is an experimental feature, the + syntax and behaviour may change in future versions. Sponsored by + Robert Klemme.
Widen the Debian popcon exception to "qa.debian.org/popcon". - Seen in Debian's 05_default_action.dpatch by Roland - Rosenfeld.
+Dynamic filters and taggers now support a $listen-address + variable which contains the address the request came in on. For + external filters the variable is called $PRIVOXY_LISTEN_ADDRESS. + Original patch contributed by pursievro.
Block ".gemius.pl/" which only seems to be used for user - tracking. Reported by johnd16 in #3002731. Additional input from - Lee and movax.
+Add client-header-tagger 'listen-address'.
Disable banners-by-size filters for '.thinkgeek.com/' The - filter only seems to catch pictures of the inventory.
+Include the listen-address in the log message when logging new + requests. Patch contributed by pursievro.
Block requests for 'go.idmnet.bbelements.com/please/showit/' - Reported by kacperdominik in #3372959.
+Turn invalid max-client-connections values into fatal + errors.
Unblock adainitiative.org/
+The show-status page now shows whether or not dates before + 1970 and after 2038 are expected to be handled properly. This is + mainly useful for Privoxy-Regression-Test but could also come + handy when dealing with time-related support requests.
Add a fast-redirects exception for - '.googleusercontent.com/.*=cache'
+On Mac OS X the thread id in log messages are more likely to + be unique now.
Add a fast-redirects exception for - webcache.googleusercontent.com/
+When complaining about missing filters, the filter type is + logged as well.
Unblock http://adassier.wordpress.com/ and - http://adassier.files.wordpress.com/
+A couple of harmless coverity warnings were silenced (CID + #161202, CID #161203, CID #161211).
Filter file improvements:
+Action file improvements:
Let the yahoo filter hide '.ads'
+Filtering is disabled for Range requests to let download + resumption and Windows updates work with the default + configuration.
Let the msn filter hide overlay ads for Facebook 'likes' in - search results and elements with the id 's_notf_div'. They only - seem to be used to advertise site 'enhancements'.
-Let the js-events filter additionally disarm setInterval() - Suggested by dg1727 in #3423775.
+Unblock ".ardmediathek.de/". Reported by ThTomate in #932.
Clarify the effect of compiling Privoxy with zlib support - Suggested by dg1727 in #3423782.
-Point out that the SourceForge messaging system works like a - black hole and should thus not be used to contact individual - developers.
-Mention some of the problems one can experience when not - explicitly configuring an IP addresses as listen address.
-Explicitly mention that hostnames can be used instead of IP - addresses for the listen-address, that only the first address - returned will be used and what happens if the address is invalid. - Requested by Calestyo in #3302213.
-Log message improvements:
- -If only the server connection is kept alive, do not pretend to - wait for a new client request.
-Remove a superfluous log message in forget_connection()
-In chat(), properly report missing server responses as such - instead of calling them empty
-In forwarded_connect(), fix a log message nobody should ever - see
+Add FAQ entry for crashes caused by memory limits.
Fix a log message in socks5_connect(), a failed write - operation was logged as failed read operation
+Remove obsolete FAQ entry about a bug in PHP 4.2.3.
Let load_one_actions_file() properly complain about a missing - '{' at the beginning of the file Simply stating that a line is - invalid isn't particularly helpful.
+Mention the new mailing lists were appropriate. As the + archives have not been migrated, continue to mention the archives + at SF in the contacting section for now.
Do not claim to listen on a socket until Privoxy actually - does. Patch submitted by Petr Pisar #3354485
+Note that the templates should be adjusted if Privoxy is + running as intercepting proxy without getting all requests.
Prevent a duplicated LOG_LEVEL_CLF message when sending out - the "no-server-data" response
+A bunch of links were converted to https://.
Also log the client socket when dropping a connection.
+Rephrase onion service paragraph to make it more obvious that + Tor is involved and that the whole website (and not just the + homepage) is available as onion service.
Include the destination host in the 'Request ... marked for - blocking. limit-connect{...} doesn't allow CONNECT ...' message - Patch submitted by Saperski in #3296250.
+Streamline the "More information" section on the homepage + further by additionally ditching the link to the 'See also' + section of the user manual. The section contains mostly links + that are directly reachable from the homepage already and the + rest is not significant enough to get a link from the + homepage.
Prevent a duplicated log message if none of the resolved IP - addresses were reachable
+Change the add-header{} example to set the DNT header and use + a complete section to make copy and pasting more convenient. Add + a comment to make it obvious that adding the header is not + recommended for obvious reasons. Using the DNT header as example + was suggested by Leo Wzukw.
In connect_to(), do not pretend to retry if - forwarded-connect-retries is zero or unset.
+Streamline the support-and-service template Instead of linking + to the various support trackers (whose URLs hopefully change + soon), link to the contact section of the user manual to increase + the chances that users actually read it.
When a specified user or group can't be found, put the name in - single-quotes when logging it.
+Add a FAQ entry for tainted sockets.
In rfc2553_connect_to(), explain getnameinfo() errors - better.
+More sections in the documentation have stable URLs now.
Remove a useless log message in chat()
+FAQ: Explain why 'ping config.privoxy.org' is not expected to + reach a local Privoxy installation.
When retrying to connect, also log the maximum number of - connection attempts
+Note that donations done through Zwiebelfreunde e.V. currently + can't be checked automatically.
Rephrase a log message in compile_dynamic_pcrs_job_list(). - Divide the error code and its meaning with a colon. Call the pcrs - job dynamic and not the filter. Filters may contain dynamic and - non-dynamic pcrs jobs at the same time. Only mention the name of - the filter or tagger, but don't claim it's a filter when it could - be a tagger.
+Updated section regarding starting Privoxy under OS X.
In a fatal error message in load_one_actions_file(), cover - both URL and TAG patterns.
+Use dedicated start instructions for FreeBSD and + ElectroBSD.
In pcrs_strerror(), properly report unknown positive error - code values as such. Previously they were handled like 0 (no - error).
+Removed release instructions for AIX. They haven't been + working for years and unsurprisingly nobody seems to care.
In compile_dynamic_pcrs_job_list(), also log the actual error - code as pcrs_strerror() doesn't handle all errors reported by - pcre
+Removed obsolete reference to the solaris-dist target.
Don't bother trying to continue chatting if the client didn't - ask for it. Reduces log noise a bit.
+Updated the release instructions for FreeBSD.
Make two fatal error message in load_one_actions_file() more - descriptive
+Removed unfinished release instructions for Amiga OS and HP-UX + 11.
In cgi_send_user_manual(), log when rejecting a file name due - to '/' or '..'
+Added a pointer to the Cygwin Time Machine for getting the + last release of Cygwin version 1.5 to use for building Privoxy on + Windows.
In load_file(), log a message if opening a file failed The CGI - error message alone isn't too helpful.
+Various typos have been fixed.
In connection_destination_matches(), improve two log messages - to help understand why the destinations don't match.
-Infrastructure improvements:
+Rephrase a log message in serve(). Client request arrival - should be differentiated from closed client connections now.
+The website is no longer hosted at SourceForge and can be + reached through https now.
In serve(), log if a client connection isn't reused due to a - configuration file change.
+The mailing lists at SourceForge have been deprecated, you can + subscribe to the new ones at: https://lists.privoxy.org/
Let mark_server_socket_tainted() always mark the server socket - tainted, just don't talk about it in cases where it has no - effect. It doesn't change Privoxy's behaviour, but makes - understanding the log file easier.
+Migrating the remaining services from SourceForge is work in + progress (TODO list item #53).
configure:
+Build system improvements:
Added a --disable-ipv6-support switch for platforms where - support is detected but doesn't actually work.
-Do not check for the existence of strerror() and memmove() - twice
-Remove a useless test for setpgrp(2). Privoxy doesn't need it - and it can cause problems when cross-compiling.
+Add configure argument to optimistically redefine FD_SETSIZE + with the intent to change the maximum number of client + connections Privoxy can handle. Only works with some libcs. + Sponsored by Robert Klemme.
Rename the --disable-acl-files switch to - --disable-acl-support. Since about 2001, ACL directives are - specified in the standard config file.
+Let the tarball-dist target skip files in ".git".
Update the URL of the 'Removing outdated PCRE version after - the next stable release' posting. The old URL stopped working - after one of SF's recent site "optimizations". Reported by Han - Liu.
+Let the tarball-dist target work in cwds other than + current.
Privoxy-Regression-Test:
-Added --shuffle-tests option to increase the chances of - detection race conditions.
+Make the 'clean' target faster when run from a git + repository.
Added a --local-test-file option that allows to use - Privoxy-Regression-Test without Privoxy
+Include tools in the generic distribution.
Added tests for missing socks4 and socks4a forwarders
+Let the gen-dist target work in cwds other than current.
The --privoxy-address option now works with IPv6 addresses - containing brackets, too
+Sort find output that is used for distribution tarballs to get + reproducible results.
Perform limited sanity checks for parameters that are supposed - to have numerical values.
+Don't add '-src' to the name of the tar ball generated by the + gen-dist target. The package isn't a source distribution but a + binary package. While at it, use a variable for the name to + reduce the chances that the various references get out of sync + and fix the gen-upload target which was looking in the wrong + directory.
Added a --sleep-time option to specify a number of seconds to - sleep between tests, defaults to 0.
+Add regression-tests.action to the files that are + distributed.
Disable the range-requests tagger for tests that break if it's - enabled
+The gen-dist target which was broken since 2002 (r1.92) has + been fixed.
Log messages use the ISO 8601 date format %Y-%m-%d.
+Remove genclspec.sh which has been obsolete since 2009.
Fix spelling in two error messages.
+Remove obsolete reference to Redhat spec file.
In the --help output, include a list of supported tests and - their default levels.
+Remove the obsolete announce target which has been commented + out years ago.
Adjust the tests to properly deal with FEATURE_TOGGLE being - disabled.
+Let rsync skip files if the checksums match.
Privoxy-Log-Parser:
+Privoxy-Regression-Test:
Perform limited sanity checks for command line parameters that - are supposed to have numerical values.
-Implement a --unbreak-lines-only option to try to revert MUA - breakage.
-Accept and highlight: Added header: Content-Encoding: - deflate
-Accept and highlight: Compressed content from 29258 to 8630 - bytes.
+Add a "Default level offset" directive which can be used to + change the default level by a given value. This directive affects + all tests located after it until the end of the file or a another + "Default level offset" directive is reached. The purpose of this + directive is to make it more convenient to skip similar tests in + a given file without having to remove or disable the tests + completely.
Accept and highlight: Client request arrived in time on socket - 21.
+Let test level 17 depend on FEATURE_64_BIT_TIME_T instead of + FEATURE_PTHREAD which has no direct connection to the time_t + size.
Highlight: Didn't receive data in time: a.fsdn.com:443
+Fix indentation in perldoc examples.
Accept log messages with ISO 8601 time stamps, too
+Don't overlook directives in the first line of the action + file.
uagen:
-Bump generated Firefox version to 8.0
+Bump version to 0.7.
Only randomize the release date if the new - --randomize-release-date option is enabled. Firefox versions - after 4 use a fixed date string without meaning.
+Fix detection of the Privoxy version now that https:// is used + for the website.
standard.action has been merged into - the default.action file.
-In the default configuration only fatal errors are logged now. You can change that in the debug @@ -982,7 +560,7 @@ body {