2 File : $Source: /cvsroot/ijbswa/current/doc/source/changelog.sgml,v $
4 Purpose : Entity included in other project documents.
6 $Id: changelog.sgml,v 2.1 2013/01/20 18:10:28 fabiankeil Exp $
8 Copyright (C) 2013 Privoxy Developers http://www.privoxy.org/
11 ======================================================================
12 This file used for inclusion with other documents only.
13 ======================================================================
15 If you make changes to this file, please verify the finished
16 docs all display as intended.
18 This file is included into:
24 <application>Privoxy 3.0.21</application> is UNRELEASED.
25 The changes since 3.0.20 beta are:
29 The SGML ChangeLog can be generated with: utils/changelog2doc.pl ChangeLog
39 Compiles on OS/2 again now that unistd.h is only included
40 on platforms that have it.
50 The show-status page shows the FEATURE_STRPTIME_SANITY_CHECKS status.
55 A couple of assert()s that could theoretically dereference
56 NULL pointers in debug builds have been relocated.
61 Added an LSB info block to the generic start script.
62 Based on a patch from Natxo Asenjo.
70 Action file improvements:
74 Block rover.ebay./ar.*\&adtype= instead of "/.*\&adtype=" which
75 caused too man false positives.
76 Reported by u302320 in #360284, additional feedback from Adam Piggott.
81 Unblock '.advrider.com/' and '/.*ADVrider'.
82 Anonymously reported in #3603636.
90 Filter file improvements:
94 Added an iframes filter.
102 Documentation improvements:
106 The whole GPLv2 text is included in the user manual now,
107 so Privoxy can serve it itself and the user can read it
108 without having to wade through GPLv3 ads first.
113 Properly numbered and underlined a couple of section titles
114 in the config that where previously overlooked due to a flaw
115 in the conversion script. Reported by Ralf Jungblut.
120 Improved the support instruction to hopefully make it harder to
121 unintentionally provide insufficient information when requesting
122 support. Previously it wasn't obvious that the information we need
123 in bug reports is usually also required in support requests.
128 Removed documentation about packages that haven't been provided
137 Privoxy-Regression-Test:
141 Only log the test number when not running in verbose mode
142 The position of the test is rarely relevant and it previously
143 wasn't exactly obvious which one of the numbers was useful to
144 repeat the test with --test-number.
152 GNUmakefile improvements:
156 Factor generate-config-file out of config-file to make testing
162 The clean target now also takes care of patch leftovers.
172 <application>Privoxy 3.0.20</application> beta contained the
173 following changes compared to the previous stable release:
184 Client sockets are now properly shutdown and drained before being
185 closed. This fixes page truncation issues with clients that aggressively
186 pipeline data on platforms that otherwise discard already written data.
187 The issue mainly affected Opera users and was initially reported
188 by Kevin in #3464439, szotsaki provided additional information to track
194 Fix latency calculation for shared connections (disabled by default).
195 It was broken since their introduction in 2009. The calculated latency
196 for most connections would be 0 in which case the timeout detection
197 failed to account for the real latency.
202 Reject URLs with invalid port. Previously they were parsed incorrectly and
203 characters between the port number and the first slash were silently
204 dropped as shown by curl test 187.
209 The default-server-timeout and socket-timeout directives accept 0 as
215 Fix a race condition on Windows that could cause Privoxy to become
216 unresponsive after toggling it on or off through the taskbar icon.
217 Reported by Tim H. in #3525694.
222 Fix the compilation on Windows when configured without IPv6 support.
227 Fix an assertion that could cause debug builds to abort() in case of
228 socks5 connection failures with "debug 2" enabled.
233 Fix an assertion that could cause debug builds to abort() if a filter
234 contained nul bytes in the replacement text.
242 General improvements:
246 Significantly improved keep-alive support for both client and server
252 New debug log level 65536 which logs all actions that were applied to
258 New directive client-header-order to forward client headers in a
259 different order than the one in which they arrived.
264 New directive tolerate-pipelining to allow client-side pipelining.
265 If enabled (3.0.20 beta enables it by default), Privoxy will keep
266 pipelined client requests around to deal with them once the current
267 request has been served.
272 New --config-test option to let Privoxy exit after checking whether or not
273 the configuration seems valid. The limitations noted in TODO #22 and #23
274 still apply. Based on a patch by Ramkumar Chinchani.
279 New limit-cookie-lifetime{} action to let cookies expire before the end
280 of the session. Suggested by Rick Sykes in #1049575.
285 Increase the hard-coded maximum number of actions and filter files from
286 10 to 30 (each). It doesn't significantly affect Privoxy's memory usage
287 and recompiling wasn't an option for all Privoxy users that reached the
293 Add support for chunk-encoded client request bodies. Previously
294 chunk-encoded request bodies weren't guaranteed to be forwarded correctly,
295 so this can also be considered a bug fix although chunk-encoded request
296 bodies aren't commonly used in the real world.
301 Add support for Tor's optimistic-data SOCKS extension, which can reduce the
302 latency for requests on newly created connections. Currently only the
303 headers are sent optimistically and only if the client request has already
304 been read completely which rules out requests with large bodies.
309 After preventing the client from pipelining, don't signal keep-alive
310 intentions. When looking at the response headers alone, it previously
311 wasn't obvious from the client's perspective that no additional responses
317 Stop considering client sockets tainted after receiving a request with body.
318 It hasn't been necessary for a while now and unnecessarily causes test
319 failures when using curl's test suite.
324 Allow HTTP/1.0 clients to signal interest in keep-alive through the
325 Proxy-Connection header. While such client are rare in the real world, it
326 doesn't hurt and couple of curl tests rely on it.
331 Only remove duplicated Content-Type headers when filters are enabled.
332 If they are not it doesn't cause ill effects and the user might not want it.
333 Downgrade the removal message to LOG_LEVEL_HEADER to clarify that it's not
334 an error in Privoxy and is unlikely to cause any problems in general.
335 Anonymously reported in #3599335.
340 Set the socket option SO_LINGER for the client socket.
345 Move several variable declarations to the beginning of their code block.
346 It's required when compiling with gcc 2.95 which is still used on some
347 platforms. Initial patch submitted by Simon South in #3564815.
352 Optionally try to sanity-check strptime() results before trusting them.
353 Broken strptime() implementations have caused problems in the past and
354 the most recent offender seems to be FreeBSD's libc (standards/173421).
359 When filtering is enabled, let Range headers pass if the range starts at
360 the beginning. This should work around (or at least reduce) the video
361 playback issues with various Apple clients as reported by Duc in #3426305.
366 Do not confuse a client hanging up with a connection time out. If a client
367 closes its side of the connection without sending a request line, do not
368 send the CLIENT_CONNECTION_TIMEOUT_RESPONSE, but report the condition
374 Allow closing curly braces as part of action values as long as they are
380 On Windows, the logfile is now written before showing the GUI error
381 message which blocks until the user acknowledges it.
382 Reported by Adriaan in #3593603.
387 Remove an unreasonable parameter limit in the CGI interface. The new
388 parameter limit depends on the memory available and is currently unlikely
389 to be reachable, due to other limits in both Privoxy and common clients.
390 Reported by Andrew on ijbswa-users@.
395 Decrease the chances of parse failures after requests with unsupported
396 methods were sent to the CGI interface.
404 Action file improvements:
408 Remove the comment that indicated that updated default.action versions
409 are released on their own.
414 Block 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'
419 Unblock 'adjamblog.wordpress.com/' and 'adjamblog.files.wordpress.com/'.
420 Reported by Ryan Farmer in #3496116.
425 Unblock '/.*Bugtracker'. Reported by pwhk in #3522341.
430 Add test URLs for '.freebsd.org' and '.watson.org'.
435 Unblock '.urbandictionary.com/popular'.
445 Block 'farm.plista.com/widgetdata.php'.
450 Block 'rotation.linuxnewmedia.com/'.
455 Block 'reklamy.sfd.pl/'. Reported by kacperdominik in #3399948.
460 Block 'g.adspeed.net/'.
465 Unblock 'websupport.wdc.com/'. Reported by Adam Piggot in #3577851.
470 Block '/openx/www/delivery/'.
475 Disable fast-redirects for '.googleapis.com/'.
480 Block 'imp.double.net/'. Reported by David Bo in #3070411.
485 Block 'gm-link.com/' which is used for email tracking.
486 Reported by David Bo in #1812733.
491 Verify that requests to "bwp." are blocked. URL taken from #1736879
492 submitted by Francois Marier.
497 Block '/.*bannerid='. Reported by Adam Piggott in #2975779.
502 Block 'cltomedia.info/delivery/' and '.adexprt.com/'.
503 Anonymously reported in #2965254.
508 Block 'de17a.com/'. Reported by David Bo in #3061472.
513 Block 'oskar.tradera.com/'. Reported by David Bo in #3060596.
518 Block '/scripts/webtrends\.js'. Reported by johnd16 in #3002729.
523 Block requests for 'pool.*.adhese.com/'. Reported by johnd16 in #3002716.
528 Update path pattern for Coremetrics and add tests.
529 Pattern and URLs submitted by Adam Piggott #3168443.
534 Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'.
535 Reported by David Bo in #3268832.
540 Unblock '.conrad.se/newsletter/banners/'. Reported by David Bo in #3413824.
545 Block '.tynt.com/'. Reported by Dan Stahlke in #3421767.
550 Unblock '.bbci.co.uk/radio/'. Reported by Adam Piggott in #3569603.
555 Block requests to 'service.maxymiser.net/'.
556 Reported by johnd16 in #3118401 (with a previous URL).
561 Disable fast-redirects for Google's "let's pretend your computer is
567 Unblock '/.*download' to resolve actionsfile feedback #3498129.
568 Submitted by Steven Kolins (soundcloud.com not working).
573 Unblock '.wlxrs.com/' which is required by hotmail.com.
574 Fixes #3413827 submitted by David Bo.
579 Add two unblock patterns for popup radio and TV players.
580 Submitted by Adam Piggott in #3596089.
588 Filter file improvements & bug fixes:
592 Add a referer tagger.
597 Reduce the likelihood that the google filter messes up HTML-generating
598 JavaScript. Reported by Zeno Kugy in #3520260.
606 Documentation improvements:
610 Revised all OS X sections due to new packaging module (OSXPackageBuilder).
615 Update the list of supported operating systems to clarify that all Windows
616 versions after 95 are expected to work and note that the platform-specific
617 code for AmigaOS and QNX currently isn't maintained.
622 Update 'Signals' section, the only explicitly handled signals are SIGINT,
628 Add Haiku to the list of operating systems on which Privoxy is known to
634 Add DragonFly to the list of BSDs on which Privoxy is known to run.
639 Removed references to redhat-specific documentation set since it no longer
645 Removed references to building PDFs since we no longer do so.
650 Multiple listen-address directives are supported since 3.0.18, correct the
651 documentation to say so.
656 Remove bogus section about long and short being preferable to int.
661 Corrected some Internet JunkBuster references to Privoxy.
666 Removed references to www.junkbusters.com since it is no longer
667 maintained. Reported by Angelina Matson.
672 Various grammar and spelling corrections
677 Add a client-header-tagger{} example for disabling filtering for range
683 Correct a URL in the "Privoxy with Tor" FAQ.
688 Spell 'refresh-tags' correctly. Reported by Don in #3571927.
693 Sort manpage options alphabetically.
698 Remove an incorrect sentence in the toggle section. The toggle state
699 doesn't affect whether or not the Windows version uses the tray icon.
700 Reported by Zeno Kugy in #3596395.
705 Add new contributors since 3.0.19.
713 Log message improvements:
717 When stopping to watch a client socket due to pipelining, additionally log
723 Log the client socket and its condition before closing it. This makes it
724 more obvious that the socket actually gets closed and should help when
725 diagnosing problems like #3464439.
730 In case of SOCKS5 failures, do not explicitly log the server's response.
731 It hasn't helped so far and the response can already be logged by enabling
732 "debug 32768" anyway. This reverts v1.81 and the follow-up bug fix v1.84.
737 Relocate the connection-accepted message from listen_loop() to serve().
738 This way it's printed by the thread that is actually serving the
739 connection which is nice when grepping for thread ids in log files.
751 Remove compatibility layer for versions prior to 3.0 since it has been
752 obsolete for more than 10 years now.
757 Remove the ijb_isupper() and ijb_tolower() macros from parsers.c since
758 they aren't used in this file.
763 Removed the 'Functions declared include:' comment sections since they tend
764 to be incomplete, incorrect and out of date and the benefit seems
770 Various comment grammar and comprehensibility improvements.
775 Remove a pointless fflush() call in chat(). Flushing all streams pretty
776 much all the time for no obvious reason is ridiculous.
781 Relocate ijb_isupper()'s definition to project.h and get the ijb_tolower()
782 definition from there, too.
787 Relocate ijb_isdigit()'s definition to project.h.
792 Rename ijb_foo macros to privoxy_foo.
797 Add malloc_or_die() which will allow to simplify code paths where malloc()
798 failures don't need to be handled gracefully.
803 Add strdup_or_die() which will allow to simplify code paths where strdup()
804 failures don't need to be handled gracefully.
809 Replace strdup() calls with strdup_or_die() calls where it's safe and
815 Fix white-space around parentheses.
820 Add missing white-space behind if's and the following parentheses.
825 Unwrap a memcpy() call in resolve_hostname_to_ip().
830 Declare pcrs_get_delimiter()'s delimiters[] static const.
835 Various optimisations to remove dead code and merge inefficient code
836 structures for improved clarity, performance or code compactness.
841 Various data type corrections.
846 Change visibility of several code segments when compiling without
847 FEATURE_CONNECTION_KEEP_ALIVE enabled for clarity.
852 In pcrs_get_delimiter(), do not use delimiters outside the ASCII range.
853 Fixes a clang complaint.
858 Fix an error message in get_last_url() nobody is supposed to see.
859 Reported by Matthew Fischer in #3507301.
864 Fix a typo in the no-zlib-support complaint. Patch submitted by Matthew
870 Shorten ssplit()'s prototype by removing the last two arguments. We always
871 want to skip empty fields and ignore leading delimiters, so having
872 parameters for this only complicates the API.
877 Use an enum for the type of the action value.
882 Rename action_name's member takes_value to value_type as it isn't used as
888 Turn family mismatches in match_sockaddr() into fatal errors.
893 Let enlist_unique_header() verify that the caller didn't pass a header
894 containing either \r or \n.
899 Change the hashes used in load_config() to unsigned int. That's what
900 hash_string() actually returns and using a potentially larger type
906 Use privoxy_tolower() instead of vanilla tolower() with manual casting of
912 Catch ssplit() failures in parse_cgi_parameters().
920 Privoxy-Regression-Test:
924 Add an 'Overwrite condition' directive to skip any matching tests before
925 it. As it has a global scope, using it is more convenient than clowning
926 around with the Ignore directive.
931 Log to STDOUT instead of STDERR.
936 Include the Privoxy version in the output.
941 Various grammar and spelling corrections in documentation and code.
946 Additional tests for range requests with filtering enabled.
951 Tests with mostly invalid range request.
956 Add a couple of hide-if-modified-since{} tests with different date formats.
961 Cleaned up the format of the regression-tests.action file to match the
962 format of default.action.
967 Remove the "Copyright" line from print_version(). When using --help, every
968 line of screen space matters and thus shouldn't be wasted on things the
969 user doesn't care about.
981 Improve the --statistics performance by skipping sanity checks for input
982 that shouldn't affect the results anyway. Add a --strict-checks option
983 that enables some of the checks again, just in case anybody cares.
988 The distribution of client requests per connection is included in
989 the --statistic output.
994 The --accept-unknown-messages option has been removed and the behavior
1000 Accept and (mostly) highlight new log messages introduced with
1013 Bump generated Firefox version to 17.
1021 GNUmakefile improvements:
1025 The dok-tidy target no longer taints documents with a tidy-mark
1030 Change RA_MODE from 0664 to 0644. Suggested by Markus Dittrich in
1036 Remove tidy's clean flag as it changes the scope of attributes.
1037 Link-specific colors end up being applied to all text. Reported by Adam
1038 Piggott in #3569551.
1043 Leave it up to the user whether or not smart tags are inserted.
1048 Let w3m itself do the line wrapping for the config file. It works better
1049 than fmt as it can honour pre tags causing less unintentional line breaks.
1054 Ditch a pointless '-r' passed to rm to delete files.
1059 The config-file target now requires less manual intervention and updates
1060 the original config.
1065 Change WDUMP to generate ASCII. Add WDUMP_UTF8 to allow UTF-8 in the
1066 AUTHORS file so the names are right.
1071 Stop pretending that lynx and links are supported for the documentation.
1079 configure improvements:
1083 On Haiku, do not pass -lpthread to the compiler. Haiku's pthreads
1084 implementation is contained in its system library, libroot, so no
1085 additional library needs to be searched.
1086 Patch submitted by Simon South in #3564815.
1091 Additional Haiku-specific improvements. Disable checks intended for
1092 multi-user systems as Haiku is presently single-user. Group Haiku-specific
1093 settings in their own section, following the pattern for Solaris, OS/2 and
1094 AmigaOS. Add additional library-related settings to remove the need for
1095 providing configure with custom LDFLAGS.
1096 Submitted by Simon South in #3574538.