Added ChangeLog bugs and improvements and added an appropriate preamble for the 3...
[privoxy.git] / doc / webserver / announce.txt
1               Announcing Privoxy v.3.0.20 beta
2 --------------------------------------------------------------------
3
4 This is a beta release that introduces some new features and fixes a number of bugs, some of which are reasonably significant. One new feature (tolerate-pipelining) is enabled by default. See below for details.
5
6 --------------------------------------------------------------------
7 ChangeLog for Privoxy
8 --------------------------------------------------------------------
9 *** Version 3.0.20 Beta ***
10
11 - Bug fixes:
12   - Client sockets are now properly shutdown and drained before being
13     closed. This fixes page truncation issues with clients that aggressively
14     pipeline data on platforms that otherwise discard already written data.
15     The issue mainly affected Opera users and was initially reported
16     by Kevin in #3464439, szotsaki provided additional information to track
17     down the cause.
18   - Fix latency calculation for shared connections (disabled by default).
19     It was broken since their introduction in 2009. The calculated latency
20     for most connections would be 0 in which case the timeout detection
21     failed to account for the real latency.
22   - Reject URLs with invalid port. Previously they were parsed incorrectly and
23     characters between the port number and the first slash were silently
24     dropped as shown by curl test 187.
25   - The default-server-timeout and socket-timeout directives accept 0 as
26     valid value.
27   - Fix a race condition on Windows that could cause Privoxy to become
28     unresponsive after toggling it on or off through the taskbar icon.
29     Reported by Tim H. in #3525694.
30   - Fix the compilation on Windows when configured without IPv6 support.
31   - Fix an assertion that could cause debug builds to abort() in case of
32     socks5 connection failures with "debug 2" enabled.
33   - Fix an assertion that could cause debug builds to abort() if a filter
34     contained nul bytes in the replacement text.
35
36 - General improvements:
37   - Significantly improved keep-alive support for both client and server
38     connections.
39   - New debug log level 65536 which logs all actions that were applied to
40     the request.
41   - New directive client-header-order to forward client headers in a
42     different order than the one in which they arrived.
43   - New directive tolerate-pipelining to allow client-side pipelining.
44     If enabled (3.0.20 beta enables it by default), Privoxy will keep
45     pipelined client requests around to deal with them once the current
46     request has been served.
47   - New --config-test option to let Privoxy exit after checking whether or not
48     the configuration seems valid. The limitations noted in TODO #22 and #23
49     still apply. Based on a patch by Ramkumar Chinchani.
50   - New limit-cookie-lifetime{} action to let cookies expire before the end
51     of the session. Suggested by Rick Sykes in #1049575.
52   - Increase the hard-coded maximum number of actions and filter files from
53     10 to 30 (each). It doesn't significantly affect Privoxy's memory usage
54     and recompiling wasn't an option for all Privoxy users that reached the
55     limit.
56   - Add support for chunk-encoded client request bodies. Previously
57     chunk-encoded request bodies weren't guaranteed to be forwarded correctly,
58     so this can also be considered a bug fix although chunk-encoded request
59     bodies aren't commonly used in the real world.
60   - Add support for Tor's optimistic-data SOCKS extension, which can reduce the
61     latency for requests on newly created connections. Currently only the
62     headers are sent optimistically and only if the client request has already
63     been read completely which rules out requests with large bodies.
64   - After preventing the client from pipelining, don't signal keep-alive
65     intentions. When looking at the response headers alone, it previously
66     wasn't obvious from the client's perspective that no additional responses
67     should be expected.
68   - Stop considering client sockets tainted after receving a request with body.
69     It hasn't been necessary for a while now and unnecessarily causes test
70     failures when using curl's test suite.
71   - Allow HTTP/1.0 clients to signal interest in keep-alive through the
72     Proxy-Connection header. While such client are rare in the real world, it
73     doesn't hurt and couple of curl tests rely on it.
74   - Only remove duplicated Content-Type headers when filters are enabled.
75     If they are not it doesn't cause ill effects and the user might not want it.
76     Downgrade the removal message to LOG_LEVEL_HEADER to clarify that it's not
77     an error in Privoxy and is unlikely to cause any problems in general.
78     Anonymously reported in #3599335.
79   - Set the socket option SO_LINGER for the client socket.
80   - Move several variable declarations to the beginning of their code block.
81     It's required when compiling with gcc 2.95 which is still used on some
82     platforms. Initial patch submitted by Simon South in #3564815.
83   - Optionally try to sanity-check strptime() results before trusting them.
84     Broken strptime() implementations have caused problems in the past and
85     the most recent offender seems to be FreeBSD's libc (standards/173421).
86   - When filtering is enabled, let Range headers pass if the range starts at
87     the beginning. This should work around (or at least reduce ) the video
88     playback issues with various Apple clients as reported by Duc in #3426305.
89   - Do not confuse a client hanging up with a connection time out. If a client
90     closes its side of the connection without sending a request line, do not
91     send the CLIENT_CONNECTION_TIMEOUT_RESPONSE, but report the condition
92     properly.
93   - Allow closing curly braces as part of action values as long as they are
94     escaped.
95   - On Windows, the logfile is now written before showing the GUI error
96     message which blocks until the user acknowledges it.
97     Reported by Adriaan in #3593603.
98   - Remove an unreasonable parameter limit in the CGI interface. The new
99     parameter limit depends on the memory available and is currently unlikely
100     to be reachable, due to other limits in both Privoxy and common clients.
101     Reported by Andrew on ijbswa-users@.
102   - Decrease the chances of parse failures after requests with unsupported
103     methods were sent to the CGI interface.
104
105 *** Version 3.0.19 Stable ***
106
107 - Bug fixes:
108   - Prevent a segmentation fault when de-chunking buffered content.
109     It could be triggered by malicious web servers if Privoxy was
110     configured to filter the content and running on a platform
111     where SIZE_T_MAX isn't larger than UINT_MAX, which probably
112     includes most 32-bit systems. On those platforms, all Privoxy
113     versions before 3.0.19 appear to be affected.
114     To be on the safe side, this bug should be presumed to allow
115     code execution as proving that it doesn't seems unrealistic.
116   - Do not expect a response from the SOCKS4/4A server until it
117     got something to respond to. This regression was introduced
118     in 3.0.18 and prevented the SOCKS4/4A negotiation from working.
119     Reported by qqqqqw in #3459781.
120
121 - General improvements:
122   - Fix an off-by-one in an error message about connect failures.
123   - Use a GNUMakefile variable for the webserver root directory and
124     update the path. Sourceforge changed it which broke various
125     web-related targets.
126   - Update the CODE_STATUS description.
127
128 -----------------------------------------------------------------
129 About Privoxy:
130 -----------------------------------------------------------------
131
132 Privoxy is a non-caching web proxy with advanced filtering capabilities for
133 enhancing privacy, modifying web page data and HTTP headers, controlling
134 access, and removing ads and other obnoxious Internet junk. Privoxy has a
135 flexible configuration and can be customized to suit individual needs and
136 tastes. It has application for both stand-alone systems and multi-user
137 networks.
138
139 Privoxy is Free Software and licensed under the GNU GPLv2.
140
141 Privoxy is an associated project of Software in the Public Interest (SPI).
142
143 Helping hands and donations are welcome:
144
145   * http://www.privoxy.org/faq/general.html#PARTICIPATE
146
147   * http://www.privoxy.org/faq/general.html#DONATE
148
149 At present, Privoxy is known to run on Windows(95, 98, ME, 2000,
150 XP, Vista), GNU/Linux (Ubuntu, RedHat, SuSE, Debian, Fedora, Gentoo and
151 others), Mac OSX, OS/2, AmigaOS, FreeBSD, NetBSD, OpenBSD, Solaris, and
152 various other flavors of Unix.
153
154 In addition to the core features of ad blocking and cookie management,
155 Privoxy provides many supplemental features, that give the end-user
156 more control, more privacy and more freedom:
157
158
159     *  Supports "Connection: keep-alive". Outgoing connections can be kept
160        alive independently from the client. Currently not available on all
161        platforms.
162
163     *  Supports IPv6, provided the operating system does so too,
164        and the configure script detects it.
165
166     *  Supports tagging which allows to change the behaviour based on client
167        and server headers.
168
169     *  Can be run as an "intercepting" proxy, which obviates the need to
170        configure browsers individually.
171
172     *  Sophisticated actions and filters for manipulating both server and
173        client headers.
174
175     *  Can be chained with other proxies.
176
177     *  Integrated browser based configuration and control utility at
178        http://config.privoxy.org/ (shortcut: http://p.p/). Browser-based
179        tracing of rule and filter effects. Remote toggling.
180
181     *  Web page filtering (text replacements, removes banners based on size,
182        invisible <quote>web-bugs</quote> and HTML annoyances, etc.)
183
184     *  Modularized configuration that allows for standard settings and user
185        settings to reside in separate files, so that installing updated actions
186        files won't overwrite individual user settings.
187
188     *  Support for Perl Compatible Regular Expressions in the configuration
189        files, and a more sophisticated and flexible configuration syntax.
190
191     *  GIF de-animation.
192
193     *  Bypass many click-tracking scripts (avoids script redirection).
194
195     *  User-customizable HTML templates for most proxy-generated pages (e.g.
196        "blocked" page).
197
198     *  Auto-detection and re-reading of config file changes.
199     
200     *  Most features are controllable on a per-site or per-location basis.
201     
202
203 Download location: 
204    http://sourceforge.net/project/showfiles.php?group_id=11118
205  
206 Home Page: 
207    http://www.privoxy.org/
208
209
210   - Privoxy Developers <ijbswa-developers@lists.sourceforge.net>