X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=doc%2Fsource%2Fchangelog.sgml;h=0edb8b449c5881f021c857f209d0db98e7e337a6;hb=61478413a02d7be37d44efb5c0c997a39a9da463;hp=f0afc1b3a0892b9ef0c8cc3823f0be5d83dfa51a;hpb=30cfc09cf02d40c8ec3848e770413d982315cc08;p=privoxy.git
diff --git a/doc/source/changelog.sgml b/doc/source/changelog.sgml
index f0afc1b3..0edb8b44 100644
--- a/doc/source/changelog.sgml
+++ b/doc/source/changelog.sgml
@@ -1,11 +1,9 @@
-
- Privoxy 3.0.22 stable is mainly a bug-fix
- release, it also has a couple of new features, though.
- Note that the first two entries in the ChangeLog below refer to security
- issues:
-
+
+ Privoxy 3.0.27 stable scales better
+ in multi-user environments and brings a couple of tuning directives.
+ Privoxy 3.0.28 stable fixes two regressions
+ introduced in 3.0.27.
+
+
+ Changes in Privoxy 3.0.28 stable:
+
-
+
- Bug fixes:
+ Bug fixes for regressions in 3.0.27:
- Fixed a memory leak when rejecting client connections due to
- the socket limit being reached (CID 66382). This affected
- Privoxy 3.0.21 when compiled with IPv6 support (on most
- platforms this is the default).
+ Fixed misplaced parentheses.
+ Reported by David Binderman.
- Fixed an immediate-use-after-free bug (CID 66394) and two
- additional unconfirmed use-after-free complaints made by
- Coverity scan (CID 66391, CID 66376).
+ Changed two regression tests to depend on config directive
+ enable-remote-toggle instead of FEATURE_TOGGLE.
-
+
+
+
+
+
+
+ Changes in Privoxy 3.0.27 stable:
+
+
+
+
+ General improvements:
+
- Actually show the FORCE_PREFIX value on the show-status page.
+ Add a receive-buffer-size directive which can be used to
+ set the size of the previously statically allocated buffer
+ in handle_established_connection().
+ Increasing the buffer size increases Privoxy's memory usage but
+ can lower the number of context switches and thereby reduce the
+ CPU usage and potentially increase the throughput.
+ This is mostly relevant for fast network connections and
+ large downloads that don't require filtering.
+ Sponsored by: Robert Klemme
- Properly deal with Keep-Alive headers with timeout= parameters
- If the timeout still can't be parsed, use the configured
- timeout instead of preventing the client from keeping the
- connection alive. Fixes #3615312/#870 reported by Bernard Guillot.
+ Add a listen-backlog directive which specifies the backlog
+ value passed to listen().
+ Sponsored by: Robert Klemme
- Not using any filter files no longer results in warning messages
- unless an action file is referencing header taggers or filters.
- Reported by Stefan Kurtz in #3614835.
+ Add an enable-accept-filter directive which allows to
+ toggle accept filter support at run time when compiled
+ with FEATURE_ACCEPT_FILTER support.
+ It makes testing more convenient and now that it's
+ optional we can emit an error message if enabling
+ the accept filter fails.
+ Sponsored by: Robert Klemme
- Fixed a bug that prevented Privoxy from reusing some reusable
- connections. Two bit masks with different purpose unintentionally
- shared the same bit.
+ Add a delay-response{} action.
+ This is useful to tar pit JavaScript requests that
+ are endlessly retried in case of blocks. It can also
+ be used to simulate a slow Internet connection.
+ Sponsored by: Robert Klemme
- A couple of additional bugs were discovered by Coverity Scan.
- The fixes that are not expected to affect users are not explicitly
- mentioned here, for details please have a look at the CVS logs.
+ Add a 'trusted-cgi-referrer' directive.
+ It allows to configure another page or site that can be used
+ to reach sensitive CGI resources.
+ Sponsored by: Robert Klemme
-
-
-
-
-
-
- General improvements:
-
+
- Introduced negative tag patterns NO-REQUEST-TAG and NO-RESPONSE-TAG.
- They apply if no matching tag is found after parsing client or
- server headers.
+ Add a --fuzz mode which exposes Privoxy internals to input
+ from files or stdout.
+ Mainly tested with American Fuzzy Lop. For details see:
+ https://www.fabiankeil.de/talks/fuzzing-on-freebsd/
+ This work was partially funded with donations and done
+ as part of the Privoxy month in 2015.
- Add support for external filters which allow to process the
- response body with a script or program written in any language
- the platform supports. External filters are enabled with
- +external-filter{} after they have been defined in one of the
- filter files with a header line starting with "EXTERNAL-FILTER:".
- External filter support is experimental, not compiled by default
- and known not to work on all platforms.
+ Consistently use the U(ngreedy) flag in the 'img-reorder' filter.
- Add support for the 'PATCH' method as defined in RFC5789.
+ listen_loop(): Reuse a single thread attribute object
+ The object doesn't change and creating a new one for
+ every thread is a waste of (CPU) time.
+ Sponsored by: Robert Klemme
- Reject requests with unsupported Expect header values.
- Fixes a couple of Co-Advisor tests.
+ Free csp resources in the thread that belongs to the csp instead
+ of the main thread which has enough on its plate already.
+ Sponsored by: Robert Klemme
- Normalize the HTTP-version in forwarded requests and responses.
- This is an explicit RFC 2616 MUST and RFC 7230 mandates that
- intermediaries send their own HTTP-version in forwarded
- messages.
+ Improve 'socket timeout reached' message.
+ Log the timeout that was triggered and downgrade the
+ log level to LOG_LEVEL_CONNECT to reduce the log noise
+ with common debug settings.
+ The timeout isn't necessary the result of an error and
+ usually merely indicates that Privoxy's socket timeout
+ is lower than the relevant timeouts used by client and
+ server.
+ Sponsored by: Robert Klemme
- Server 'Keep-Alive' headers are no longer forwarded. From a user's
- point of view it doesn't really matter, but RFC 2616 (obsolete)
- mandates that the header is removed and this fixes a Co-Advisor
- complaint.
+ Explicitly taint the server socket in case of CONNECT requests.
+ This doesn't fix any known problems, but makes
+ some log messages less confusing.
- Change declared template file encoding to UTF-8. The templates
- already used a subset of UTF-8 anyway and changing the declaration
- allows to properly display UTF-8 characters used in the action files.
- This change may require existing action files with ISO-8859-1
- characters that aren't valid UTF-8 to be converted to UTF-8.
- Requested by Sam Chen in #582.
+ Let write_pid_file() terminate if the pid file can't be opened.
+ Logging the issue at info level is unlikely to help.
- Do not pass rejected keep-alive timeouts to the server. It might
- not have caused any problems (we know of), but doing the right
- thing shouldn't hurt either.
+ log_error(): Reduce the mutex-protected area by not using a
+ heap-allocated buffer that is shared between all threads.
+ This increases performance and reduces the latency with
+ verbose debug settings and multiple concurrent connections.
+ Sponsored by: Robert Klemme
- Let log_error() use its own buffer size #define to make changing
- the log buffer size slightly less inconvenient.
+ Let zalloc() use calloc() if it's available.
+ In some situations using calloc() can be faster than
+ malloc() + memset() and it should never be slower.
+ In the real world the impact of this change is not
+ expected to be noticeable.
+ Sponsored by: Robert Klemme
- Turned single-threaded into a "proper" toggle directive with arguments.
+ Never use select() when poll() is available.
+ On most platforms select() is limited by FD_SETSIZE while
+ poll() is not. This was a scaling issue for multi-user setups.
+ Using poll() has no downside other than the usual risk
+ that code modifications may introduce new bugs that have
+ yet to be found and fixed.
+ At least in theory this commit could also reduce the latency
+ when there are lots of connections and select() would use
+ "bit fields in arrays of integers" to store file descriptors.
+ Another side effect is that Privoxy no longer has to stop
+ monitoring the client sockets when pipelined requests are
+ waiting but can't be read yet.
+ This code keeps the select()-based code behind ifdefs for
+ now but hopefully it can be removed soonish to make the
+ code more readable.
+ Sponsored by: Robert Klemme
- CGI templates no longer enforce new windows for some links.
+ Add a 'reproducible-tarball-dist' target.
+ It's currently separate from the "tarball-dist" target
+ because it requires a tar implementation with mtree spec
+ support.
+ It's far from being perfect and does not enforce a
+ reproducible mode, but it's better than nothing.
- Remove an undocumented workaround ('HOST' header removal) for
- an Apple iTunes bug that according to #729900 got fixed in 2003.
+ Use arc4random() if it's available.
+ While Privoxy doesn't need high quality pseudo-random numbers
+ there's no reason not to use them when we can and this silences
+ a warning emitted by code checkers that can't tell whether or not
+ the quality matters.
-
-
-
-
-
-
- Action file improvements:
-
+
- The pattern 'promotions.' is no longer being blocked.
- Reported by rakista in #3608540.
+ Show the FEATURE_EXTERNAL_FILTERS status on the status page.
+ Better late than never. Previously a couple of tests weren't
+ executed as Privoxy-Regression-Test couldn't detect that the
+ FEATURE_EXTERNAL_FILTERS dependency was satisfied.
- Disable fast-redirects for .microsofttranslator.com/.
+ Ditch FEATURE_IMAGE_DETECT_MSIE.
+ It's an obsolete workaround we inherited from Junkbuster
+ and was already disabled by default.
+ Users that feel the urge to work around issues with
+ image requests coming from an Internet Explorer version
+ from more than 15 years ago can still do this using tags.
- Disable filter{banners-by-size} for .dgb-tagungszentren.de/.
+ Consistently use strdup_or_die() instead of strdup() in
+ cases where allocation failures aren't expected.
+ Using strdup_or_die() allows to remove a couple of explicit
+ error checks which slightly reduces the size of the binary.
- Add adn.speedtest.net as a site-specific unblocker.
- Support request #3612908.
+ Insert a refresh tag into the /client-tags CGI page when
+ serving it while a client-specific tag is temporarily enabled.
+ This makes it less likely that the user ends up
+ looking at tag state that is out of date.
- Disable filter{banners-by-size} for creativecommons.org/.
+ Use absolute URLs in the client-tag forms.
+ It's more consistent with the rest of the CGI page
+ URLs and makes it more convenient to copy the forms
+ to external pages.
- Block requests to data.gosquared.com/. Reported by cbug in #3613653.
+ cgi_error_disabled(): Use status code 403 and an appropriate response line
- Unblock .conrad./newsletter/. Reported by David Bo in #3614238.
+ Use a dedicated CGI handler to deal with tag-toggle requests
+ As a result the /client-tags page is now safe to reach without
+ trusted Referer header which makes bookmarking or linking to
+ it more convenient.
+ Finally, refreshing the /client-tags page to show the
+ current state can no longer unintentionally repeat the
+ previous toggle request.
- Unblock .bundestag.de/.
+ Don't add a "Connection" header for CONNECT requests.
+ Explicitly sending "Connection: close" is not necessary and
+ apparently it causes problems with some forwarding proxies
+ that will close the connection prematurely.
+ Reported by Marc Thomas.
- Unblock .rote-hilfe.de/.
+ Fix compiler warnings.
+
+
+
+
+
+ Bug fixes:
+
- Disable fast-redirects for .facebook.com/plugins/like.php.
+ rfc2553_connect_to(): Properly detect and log when poll()
+ reached the time out. Previously this was logged as:
+ Could not connect to [...]: No error: 0.
+ which isn't very helpful.
+ Sponsored by: Robert Klemme
- Unblock Stackexchange popup URLs that aren't used to serve ads.
- Reported by David Wagner in #3615179.
+ add_tag_for_client(): Set time_to_live properly.
+ Previously the time_to_live was always set for the first tag.
+ Attempts to temporarily enable a tag would result in enabling
+ it permanently unless no tag was enabled already.
- Disable fast-redirects for creativecommons.org/.
+ Revert r1.165 which didn't perform as advertised.
+ While the idea was to use "https:// when creating links
+ for the user manual on the website", the actual effect
+ was to use "https://" when Privoxy was supposed to serve
+ the user manual itself.
+ Reported by Yossi Zahn on Privoxy-devel@.
- Unblock .stopwatchingus.info/.
+ socks5_connect(): Fail in case of unsupported address types.
+ Previously they would not be detected right away and
+ Privoxy would fail later on with an error message that
+ didn't make it obvious that the problem was socks-related.
+ So far, no such problems have actually been reported.
- Block requests for .adcash.com/script/.
- Reported by Tyrexionibus in #3615289.
+ socks5_connect(): Properly deal with socks replies that
+ contain IPv6 addresses.
+ Previously parts of the reply were left unread and
+ later on treated as invalid HTTP response data.
+ Fixes #904 reported by Danny Goossen who also provided
+ the initial version of this patch.
+
+
+
+
+
+
+
+ Action file improvements:
+
+
+
+ Unblock 'msdn.microsoft.com/'.
+ It (presumably) isn't used to serve the kind of ads Privoxy should
+ block by default but happens to serve lots of pages with URLs that
+ are likely to result in false positives.
+ Reported by bugreporter1694 in AF#939.
- Disable HTML filters if the response was tagged as JavaScript.
- Filtering JavaScript code with filters intended to deal with HTML
- is usually a waste of time and, more importantly, may break stuff.
+ Disable gif deanimation for requests tagged with CSS-REQUEST.
+ The action will ignore content that isn't considered text
+ anyway and explicitly disabling it makes this more obvious
+ if "action" debugging (debug 65536) is enabled while
+ "gif deanimation" debugging (debug 256) isn't.
- Use a custom redirect{} for .washingtonpost.com/wp-apps/imrs\.php\?src=
- Previously enabling the 'Advanced' settings (or manually enabling
- +fast-redirects{}) prevented some images from being loaded properly.
+ Explicitly disable HTML filters for requests with CSS-REQUEST tag.
+ The filters are unlikely to break CSS files but executing
+ them without (intentionally) getting any hits is a waste of
+ cpu time and makes the log more noisy when running with
+ "debug 64".
- Unblock "adina*." Fixes #919 reported by Morton A. Goldberg.
+ Unblock 'adventofcode.com/'.
+ Reported by Clint Adams in Debian bug #848211.
+ Fixes Roland's AF#937.
- Block '/.*DigiAd'.
+ Unblock 'adlibris.com'.
+ Reported by Wyrex in #935
- Unblock 'adele*.'. Reported by Adele Lime in #1663.
+ Unblock .golang.org/
- Disable banners-by-size for kggp.de/.
+ Add fast-redirects exception for '.youtube.com/.*origin=http'
@@ -296,28 +410,41 @@
- Filter file improvements & bug fixes:
+ Privoxy-Log-Parser:
- Decrease the chances that js-annoyances creates invalid JavaScript.
- Submitted by John McGowan on ijbswa-users@.
+ Don't gather host and resource statistics if they aren't requested.
+ While the performance impact seems negligible this significantly
+ reduces the memory usage if there are lots of requests.
+
+
+
+
+ Bump version as the behaviour (slightly) changed.
- Let the msn filter hide 'related' ads again.
+ Count connection failures as well in statistics mode.
+ Sponsored by: Robert Klemme
- Remove a stray '1' in the 'html-annoyances' filter.
+ Count connection timeouts as well in statistics mode.
+ Sponsored by: Robert Klemme
- Prevent img-reorder from messing up img tags with empty src
- attributes. Fixes #880 reported by Duncan.
+ Fix an 'uninitialized value' warning when generating
+ statistics for a log file without response headers.
+ While privoxy-log-parser was supposed to detect this already,
+ the check was flawed and the message the user didn't see was
+ somewhat confusing anyway.
+ Now the message is less confusing, more helpful and actually printed.
+ Reported by: Robert Klemme
@@ -329,106 +456,131 @@
- Updated the 'Would you like to donate?' section.
-
-
-
-
- Note that invalid forward-override{} parameter syntax isn't
- detected until the parameter is used.
+ Refer to the git sources instead of CVS.
- Add another +redirect{} example: a shortcut for illumos bugs.
+ Use GNU/Linux when referring to the OS instead of the kernel.
- Make it more obvious that many operating systems support log
- rotation out of the box.
+ Add FAQ entry for what to do if editing the config file is access denied.
- Fixed dead links. Reported by Mark Nelson in #3614557.
+ Add brief HTTP/2 FAQ.
- Rephrased the 'Why is the configuration so complicated?' answer
- to be slightly less condescending. Anonymously suggested in #3615122.
+ Add a small fuzzing section to the developer documentation.
- Be more explicit about accept-intercepted-requests's lack of MITM support.
+ Add a client-header-tagger{client-ip-address} example.
- Make 'demoronizer' FAQ entries more generic.
+ Stop suggesting that Privoxy is an anonymizing proxy.
+ The term could lead to Privoxy users overestimating
+ what it can do on its own (without Tor).
- Add an example hostname to the --pre-chroot-nslookup description.
+ Make it more obvious that SPI accepts Paypal, too.
+ Currently most donations are made through the Paypal account
+ managed by Zwiebelfreunde e.V. and a more even distribution
+ would be useful.
- Add an example for a host pattern that matches an IP address.
+ Suggest to log applying actions as well when reproducing problems.
- Rename the 'domain pattern' to 'host pattern' as it may
- contain IP addresses as well.
+ Explicitly mention that Privoxy binaries are built by individuals
+ on their own systems. Buyer beware!
- Recommend forward-socks5t when using Tor. It seems to work fine and
- modifying the Tor configuration to profit from it hasn't been necessary
- for a while now.
+ Mention the release feed on the homepage.
- Add another redirect{} example to stress that redirect loops can
- and should be avoided.
+ Remove a mysterious comment with a GNU FDL link as it isn't
+ useful and could confuse license scanners.
+ In May 2002 it was briefly claimed that "this document" was covered
+ by the GNU FDL. The commit message (r1.5) doesn't explain the motivation
+ or whether all copyright holders were actually asked and agreed to the
+ declared license change.
+ It's thus hard to tell whether or not the license change was legit,
+ but luckily two days later the "doc license" was "put" "back to GPL"
+ anyway (r1.6).
+ At the same time the offending comment with a link to the FDL
+ (not the GPL) was added for no obvious reason.
+ Now it's gone again.
+
+
+
+
+
+ Regression tests:
+
- The usual spelling and grammar fixes. Parts of them were
- reported by Reuben Thomas in #3615276.
+ Bump for-privoxy-version to 3.0.27 as we now rely on untrusted
+ CGI request being rejected with status code 403 (instead of 200).
- Mention the PCRS option letters T and D in the filter section.
+ Update test for /send-stylesheet and add another one
-
+
+
+
+
+
+
+ Templates:
+
- Clarify that handle-as-empty-doc-returns-ok is still useful
- and will not be removed without replacement.
+ Consistently use https:// when linking to the Privoxy website.
- Note that security issues shouldn't be reported using the bug tracker.
+ Remove SourceForge references in Copyright header.
- Clarify what Privoxy does if both +block{} and +redirect{} apply.
+ Remove a couple of SourceForge references in a comment.
+ While at it, fix the grammar.
- Removed the obsolete bookmarklets section.
+ Move the site-specific documentation block before the generic one.
+ While most Privoxy installations don't have a site-specific
+ documentation block, in cases were it exists it's likely to
+ be more relevant than the generic one.
+ Showing it first makes it less likely that users stop reading
+ before they reach it, especially on pages that don't fit on
+ the screen.
@@ -440,37 +592,65 @@
- Let --with-group properly deal with secondary groups.
- Patch submitted by Anatoly Arzhnikov in #3615187.
+ Prefer openjade to jade. On some systems Jade produces
+ HTML with unescaped ampersands in URLs.
+
+
+
+
+ Prefer OpenSP to SP to be consistent.
- Fix web-actions target.
+ Have Docbook generated HTML files be straight ASCII.
+ Dealing with a mixture of ISO-8859 and UTF-8 files is problematic.
- Add a web-faq target that only updates the FAQ on the webserver.
+ Echo the filename to stderr for 'make dok-tidy'.
+ Make it a bit easier to find errors in docbook generated HTML.
- Remove already-commented-out non-portable DOSFILTER alternatives.
+ Warn when still using select().
- Remove the obsolete targets dok-put and dok-get.
+ Warn when compiling without calloc().
- Add a sf-shell target.
+ Make it more obvious that the --with-fdsetsize configure switch
+ is pointless if poll() is available.
+
+
+
+
+ Remove support for AmigaOS.
+
+
+
+
+ Update windows build system to use supported software.
+ The cygwin gcc -mno-cygwin option is no longer supported, so
+ convert the windows build system to use the cygwin cross-compiler
+ to build "native" code.
+
+
+
+
+ Add --enable-static-linking option for configure
+ does the same thing as LDFLAGS=-static; ./configure
+ but nicer than mixing evars and configure options.
-
+