2 File : $Source: /cvsroot/ijbswa/current/doc/source/p-authors.sgml,v $
4 Purpose : Entity included in other project documents.
6 $Id: p-authors.sgml,v 2.49 2013/01/10 11:39:05 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.20</application> is a beta release.
25 The changes since 3.0.19 stable are:
29 The SGML ChangeLog can be generated with: utils/changelog2doc.pl ChangeLog
39 Client sockets are now properly shutdown and drained before being
40 closed. This fixes page truncation issues with clients that aggressively
41 pipeline data on platforms that otherwise discard already written data.
42 The issue mainly affected Opera users and was initially reported
43 by Kevin in #3464439, szotsaki provided additional information to track
49 Fix latency calculation for shared connections (disabled by default).
50 It was broken since their introduction in 2009. The calculated latency
51 for most connections would be 0 in which case the timeout detection
52 failed to account for the real latency.
57 Reject URLs with invalid port. Previously they were parsed incorrectly and
58 characters between the port number and the first slash were silently
59 dropped as shown by curl test 187.
64 The default-server-timeout and socket-timeout directives accept 0 as
70 Fix a race condition on Windows that could cause Privoxy to become
71 unresponsive after toggling it on or off through the taskbar icon.
72 Reported by Tim H. in #3525694.
77 Fix the compilation on Windows when configured without IPv6 support.
82 Fix an assertion that could cause debug builds to abort() in case of
83 socks5 connection failures with "debug 2" enabled.
88 Fix an assertion that could cause debug builds to abort() if a filter
89 contained nul bytes in the replacement text.
101 Significantly improved keep-alive support for both client and server
107 New debug log level 65536 which logs all actions that were applied to
113 New directive client-header-order to forward client headers in a
114 different order than the one in which they arrived.
119 New directive tolerate-pipelining to allow client-side pipelining.
120 If enabled (3.0.20 beta enables it by default), Privoxy will keep
121 pipelined client requests around to deal with them once the current
122 request has been served.
127 New --config-test option to let Privoxy exit after checking whether or not
128 the configuration seems valid. The limitations noted in TODO #22 and #23
129 still apply. Based on a patch by Ramkumar Chinchani.
134 New limit-cookie-lifetime{} action to let cookies expire before the end
135 of the session. Suggested by Rick Sykes in #1049575.
140 Increase the hard-coded maximum number of actions and filter files from
141 10 to 30 (each). It doesn't significantly affect Privoxy's memory usage
142 and recompiling wasn't an option for all Privoxy users that reached the
148 Add support for chunk-encoded client request bodies. Previously
149 chunk-encoded request bodies weren't guaranteed to be forwarded correctly,
150 so this can also be considered a bug fix although chunk-encoded request
151 bodies aren't commonly used in the real world.
156 Add support for Tor's optimistic-data SOCKS extension, which can reduce the
157 latency for requests on newly created connections. Currently only the
158 headers are sent optimistically and only if the client request has already
159 been read completely which rules out requests with large bodies.
164 After preventing the client from pipelining, don't signal keep-alive
165 intentions. When looking at the response headers alone, it previously
166 wasn't obvious from the client's perspective that no additional responses
172 Stop considering client sockets tainted after receiving a request with body.
173 It hasn't been necessary for a while now and unnecessarily causes test
174 failures when using curl's test suite.
179 Allow HTTP/1.0 clients to signal interest in keep-alive through the
180 Proxy-Connection header. While such client are rare in the real world, it
181 doesn't hurt and couple of curl tests rely on it.
186 Only remove duplicated Content-Type headers when filters are enabled.
187 If they are not it doesn't cause ill effects and the user might not want it.
188 Downgrade the removal message to LOG_LEVEL_HEADER to clarify that it's not
189 an error in Privoxy and is unlikely to cause any problems in general.
190 Anonymously reported in #3599335.
195 Set the socket option SO_LINGER for the client socket.
200 Move several variable declarations to the beginning of their code block.
201 It's required when compiling with gcc 2.95 which is still used on some
202 platforms. Initial patch submitted by Simon South in #3564815.
207 Optionally try to sanity-check strptime() results before trusting them.
208 Broken strptime() implementations have caused problems in the past and
209 the most recent offender seems to be FreeBSD's libc (standards/173421).
214 When filtering is enabled, let Range headers pass if the range starts at
215 the beginning. This should work around (or at least reduce) the video
216 playback issues with various Apple clients as reported by Duc in #3426305.
221 Do not confuse a client hanging up with a connection time out. If a client
222 closes its side of the connection without sending a request line, do not
223 send the CLIENT_CONNECTION_TIMEOUT_RESPONSE, but report the condition
229 Allow closing curly braces as part of action values as long as they are
235 On Windows, the logfile is now written before showing the GUI error
236 message which blocks until the user acknowledges it.
237 Reported by Adriaan in #3593603.
242 Remove an unreasonable parameter limit in the CGI interface. The new
243 parameter limit depends on the memory available and is currently unlikely
244 to be reachable, due to other limits in both Privoxy and common clients.
245 Reported by Andrew on ijbswa-users@.
250 Decrease the chances of parse failures after requests with unsupported
251 methods were sent to the CGI interface.
259 Action file improvements:
263 Remove the comment that indicated that updated default.action versions
264 are released on their own.
269 Block 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'
274 Unblock 'adjamblog.wordpress.com/' and 'adjamblog.files.wordpress.com/'.
275 Reported by Ryan Farmer in #3496116.
280 Unblock '/.*Bugtracker'. Reported by pwhk in #3522341.
285 Add test URLs for '.freebsd.org' and '.watson.org'.
290 Unblock '.urbandictionary.com/popular'.
300 Block 'farm.plista.com/widgetdata.php'.
305 Block 'rotation.linuxnewmedia.com/'.
310 Block 'reklamy.sfd.pl/'. Reported by kacperdominik in #3399948.
315 Block 'g.adspeed.net/'.
320 Unblock 'websupport.wdc.com/'. Reported by Adam Piggot in #3577851.
325 Block '/openx/www/delivery/'.
330 Disable fast-redirects for '.googleapis.com/'.
335 Block 'imp.double.net/'. Reported by David Bo in #3070411.
340 Block 'gm-link.com/' which is used for email tracking.
341 Reported by David Bo in #1812733.
346 Verify that requests to "bwp." are blocked. URL taken from #1736879
347 submitted by Francois Marier.
352 Block '/.*bannerid='. Reported by Adam Piggott in #2975779.
357 Block 'cltomedia.info/delivery/' and '.adexprt.com/'.
358 Anonymously reported in #2965254.
363 Block 'de17a.com/'. Reported by David Bo in #3061472.
368 Block 'oskar.tradera.com/'. Reported by David Bo in #3060596.
373 Block '/scripts/webtrends\.js'. Reported by johnd16 in #3002729.
378 Block requests for 'pool.*.adhese.com/'. Reported by johnd16 in #3002716.
383 Update path pattern for Coremetrics and add tests.
384 Pattern and URLs submitted by Adam Piggott #3168443.
389 Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'.
390 Reported by David Bo in #3268832.
395 Unblock '.conrad.se/newsletter/banners/'. Reported by David Bo in #3413824.
400 Block '.tynt.com/'. Reported by Dan Stahlke in #3421767.
405 Unblock '.bbci.co.uk/radio/'. Reported by Adam Piggott in #3569603.
410 Block requests to 'service.maxymiser.net/'.
411 Reported by johnd16 in #3118401 (with a previous URL).
416 Disable fast-redirects for Google's "let's pretend your computer is
422 Unblock '/.*download' to resolve actionsfile feedback #3498129.
423 Submitted by Steven Kolins (soundcloud.com not working).
428 Unblock '.wlxrs.com/' which is required by hotmail.com.
429 Fixes #3413827 submitted by David Bo.
434 Add two unblock patterns for popup radio and TV players.
435 Submitted by Adam Piggott in #3596089.
443 Filter file improvements & bug fixes:
447 Add a referer tagger.
452 Reduce the likelihood that the google filter messes up HTML-generating
453 JavaScript. Reported by Zeno Kugy in #3520260.
461 Documentation improvements:
465 Revised all OS X sections due to new packaging module (OSXPackageBuilder).
470 Update the list of supported operating systems to clarify that all Windows
471 versions after 95 are expected to work and note that the platform-specific
472 code for AmigaOS and QNX currently isn't maintained.
477 Update 'Signals' section, the only explicitly handled signals are SIGINT,
483 Add Haiku to the list of operating systems on which Privoxy is known to
489 Add DragonFly to the list of BSDs on which Privoxy is known to run.
494 Removed references to redhat-specific documentation set since it no longer
500 Removed references to building PDFs since we no longer do so.
505 Multiple listen-address directives are supported since 3.0.18, correct the
506 documentation to say so.
511 Remove bogus section about long and short being preferable to int.
516 Corrected some Internet JunkBuster references to Privoxy.
521 Removed references to www.junkbusters.com since it is no longer
522 maintained. Reported by Angelina Matson.
527 Various grammar and spelling corrections
532 Add a client-header-tagger{} example for disabling filtering for range
538 Correct a URL in the "Privoxy with Tor" FAQ.
543 Spell 'refresh-tags' correctly. Reported by Don in #3571927.
548 Sort manpage options alphabetically.
553 Remove an incorrect sentence in the toggle section. The toggle state
554 doesn't affect whether or not the Windows version uses the tray icon.
555 Reported by Zeno Kugy in #3596395.
560 Add new contributors since 3.0.19.
568 Log message improvements:
572 When stopping to watch a client socket due to pipelining, additionally log
578 Log the client socket and its condition before closing it. This makes it
579 more obvious that the socket actually gets closed and should help when
580 diagnosing problems like #3464439.
585 In case of SOCKS5 failures, do not explicitly log the server's response.
586 It hasn't helped so far and the response can already be logged by enabling
587 "debug 32768" anyway. This reverts v1.81 and the follow-up bug fix v1.84.
592 Relocate the connection-accepted message from listen_loop() to serve().
593 This way it's printed by the thread that is actually serving the
594 connection which is nice when grepping for thread ids in log files.
606 Remove compatibility layer for versions prior to 3.0 since it has been
607 obsolete for more than 10 years now.
612 Remove the ijb_isupper() and ijb_tolower() macros from parsers.c since
613 they aren't used in this file.
618 Removed the 'Functions declared include:' comment sections since they tend
619 to be incomplete, incorrect and out of date and the benefit seems
625 Various comment grammar and comprehensibility improvements.
630 Remove a pointless fflush() call in chat(). Flushing all streams pretty
631 much all the time for no obvious reason is ridiculous.
636 Relocate ijb_isupper()'s definition to project.h and get the ijb_tolower()
637 definition from there, too.
642 Relocate ijb_isdigit()'s definition to project.h.
647 Rename ijb_foo macros to privoxy_foo.
652 Add malloc_or_die() which will allow to simplify code paths where malloc()
653 failures don't need to be handled gracefully.
658 Add strdup_or_die() which will allow to simplify code paths where strdup()
659 failures don't need to be handled gracefully.
664 Replace strdup() calls with strdup_or_die() calls where it's safe and
670 Fix white-space around parentheses.
675 Add missing white-space behind if's and the following parentheses.
680 Unwrap a memcpy() call in resolve_hostname_to_ip().
685 Declare pcrs_get_delimiter()'s delimiters[] static const.
690 Various optimisations to remove dead code and merge inefficient code
691 structures for improved clarity, performance or code compactness.
696 Various data type corrections.
701 Change visibility of several code segments when compiling without
702 FEATURE_CONNECTION_KEEP_ALIVE enabled for clarity.
707 In pcrs_get_delimiter(), do not use delimiters outside the ASCII range.
708 Fixes a clang complaint.
713 Fix an error message in get_last_url() nobody is supposed to see.
714 Reported by Matthew Fischer in #3507301.
719 Fix a typo in the no-zlib-support complaint. Patch submitted by Matthew
725 Shorten ssplit()'s prototype by removing the last two arguments. We always
726 want to skip empty fields and ignore leading delimiters, so having
727 parameters for this only complicates the API.
732 Use an enum for the type of the action value.
737 Rename action_name's member takes_value to value_type as it isn't used as
743 Turn family mismatches in match_sockaddr() into fatal errors.
748 Let enlist_unique_header() verify that the caller didn't pass a header
749 containing either \r or \n.
754 Change the hashes used in load_config() to unsigned int. That's what
755 hash_string() actually returns and using a potentially larger type
761 Use privoxy_tolower() instead of vanilla tolower() with manual casting of
767 Catch ssplit() failures in parse_cgi_parameters().
775 Privoxy-Regression-Test:
779 Add an 'Overwrite condition' directive to skip any matching tests before
780 it. As it has a global scope, using it is more convenient than clowning
781 around with the Ignore directive.
786 Log to STDOUT instead of STDERR.
791 Include the Privoxy version in the output.
796 Various grammar and spelling corrections in documentation and code.
801 Additional tests for range requests with filtering enabled.
806 Tests with mostly invalid range request.
811 Add a couple of hide-if-modified-since{} tests with different date formats.
816 Cleaned up the format of the regression-tests.action file to match the
817 format of default.action.
822 Remove the "Copyright" line from print_version(). When using --help, every
823 line of screen space matters and thus shouldn't be wasted on things the
824 user doesn't care about.
836 Improve the --statistics performance by skipping sanity checks for input
837 that shouldn't affect the results anyway. Add a --strict-checks option
838 that enables some of the checks again, just in case anybody cares.
843 The distribution of client requests per connection is included in
844 the --statistic output.
849 The --accept-unknown-messages option has been removed and the behavior
855 Accept and (mostly) highlight new log messages introduced with
868 Bump generated Firefox version to 17.
876 GNUmakefile improvements:
880 The dok-tidy target no longer taints documents with a tidy-mark
885 Change RA_MODE from 0664 to 0644. Suggested by Markus Dittrich in
891 Remove tidy's clean flag as it changes the scope of attributes.
892 Link-specific colors end up being applied to all text. Reported by Adam
898 Leave it up to the user whether or not smart tags are inserted.
903 Let w3m itself do the line wrapping for the config file. It works better
904 than fmt as it can honour pre tags causing less unintentional line breaks.
909 Ditch a pointless '-r' passed to rm to delete files.
914 The config-file target now requires less manual intervention and updates
920 Change WDUMP to generate ASCII. Add WDUMP_UTF8 to allow UTF-8 in the
921 AUTHORS file so the names are right.
926 Stop pretending that lynx and links are supported for the documentation.
934 configure improvements:
938 On Haiku, do not pass -lpthread to the compiler. Haiku's pthreads
939 implementation is contained in its system library, libroot, so no
940 additional library needs to be searched.
941 Patch submitted by Simon South in #3564815.
946 Additional Haiku-specific improvements. Disable checks intended for
947 multi-user systems as Haiku is presently single-user. Group Haiku-specific
948 settings in their own section, following the pattern for Solaris, OS/2 and
949 AmigaOS. Add additional library-related settings to remove the need for
950 providing configure with custom LDFLAGS.
951 Submitted by Simon South in #3574538.