Merge ChangeLog updates
[privoxy.git] / doc / webserver / announce.txt
1               Announcing Privoxy v.3.0.17 stable
2 -----------------------------------------------------------------
3
4 This is mainly a bug-fix release for the previously released Privoxy 3.0.16.
5
6 It contains fixes for two bugs that could cause connections to hang under
7 certain circumstances when keep-alive support was enabled, until they timed
8 out or where closed by the server.
9
10 See http://www.privoxy.org/3.0.17/user-manual/whatsnew.html for details.
11
12 --------------------------------------------------------------------
13 ChangeLog for Privoxy
14 --------------------------------------------------------------------
15 *** Version 3.0.17 Stable ***
16
17 - Fixed last-chunk-detection for responses where the content was small
18   enough to be read with the body, causing Privoxy to wait for the
19   end of the content until the server closed the connection or the
20   request timed out. Reported by "Karsten" in #3028326.
21 - Responses with status code 204 weren't properly detected as body-less
22   like RFC2616 mandates. Like the previous bug, this caused Privoxy to
23   wait for the end of the content until the server closed the connection
24   or the request timed out. Fixes #3022042 and #3025553, reported by a
25   user with no visible name. Most likely also fixes a bunch of other
26   AJAX-related problem reports that got closed in the past due to
27   insufficient information and lack of feedback.
28 - Fixed an ACL bug that made it impossible to build a blacklist.
29   Usually the ACL directives are used in a whitelist, which worked
30   as expected, but blacklisting is still useful for public proxies
31   where one only needs to deny known abusers access.
32 - Added LOG_LEVEL_RECEIVED to log the not-yet-parsed data read from the
33   network. This should make debugging various parsing issues a lot easier.
34 - The IPv6 code is enabled by default on Windows versions that support it.
35   Patch submitted by oCameLo in #2942729.
36 - In mingw32 versions, the user.filter file is reachable through the
37   GUI, just like default.filter is. Feature request 3040263.
38 - Added the configure option --enable-large-file-support to set a few
39   defines that are required by platforms like GNU/Linux to support files
40   larger then 2GB. Mainly interesting for users without proper logfile
41   management.
42 - Logging with "debug 16" no longer stops at the first nul byte which is
43   pretty useless. Non-printable characters are replaced with their hex value
44   so the result can't span multiple lines making parsing them harder then
45   necessary.
46 - Privoxy logs when reading an action, filter or trust file.
47 - Fixed incorrect regression test markup which caused a test in
48   3.0.16 to fail while Privoxy itself was working correctly.
49   While Privoxy accepts hide-referer, too, the action name is actually
50   hide-referrer which is also the name used one the final results page,
51   where the test expected the alias.
52
53 - CGI interface improvements:
54   - In finish_http_response(), continue to add the 'Connection: close'
55     header if the client connection will not be kept alive.
56     Anonymously pointed out in #2987454.
57   - Apostrophes in block messages no longer cause parse errors
58     when the blocked page is viewed with JavaScript enabled.
59     Reported by dg1727 in #3062296.
60   - Fix a bunch of anchors that used underscores instead of dashes.
61   - Allow to keep the client connection alive after crunching the previous request.
62     Already opened server connections can be kept alive, too.
63   - In cgi_show_url_info(), don't forget to prefix URLs that only contain
64     http:// or https:// in the path. Fixes #2975765 reported by Adam Piggott.
65   - Show the 404 CGI page if cgi_send_user_manual() is called while
66     local user manual delivery is disabled.
67
68 - Action file improvements:
69   - Enable user.filter by default. Suggested by David White in #3001830.
70   - Block .sitestat.com/. Reported by johnd16 in #3002725.
71   - Block .atemda.com/. Reported by johnd16 in #3002723.
72   - Block js.adlink.net/. Reported by johnd16 in #3002720.
73   - Block .analytics.yahoo.com/. Reported by johnd16 in #3002713.
74   - Block sb.scorecardresearch.com, too. Reported by dg1727 in #2992652.
75   - Fix problems noticed on Yahoo mail and news pages.
76   - Remove the too broad yahoo section, only keeping the
77     fast-redirects exception as discussed on ijbswa-devel@.
78   - Don't block adesklets.sourceforge.net. Reported in #2974204.
79   - Block chartbeat ping tracking. Reported in #2975895.
80   - Tag CSS and image requests with cautious and medium settings, too.
81   - Don't handle view.atdmt.com as image. It's used for click-throughs
82     so users should be able to "go there anyway".
83     Reported by Adam Piggott in #2975927.
84   - Also let the refresh-tags filter remove invalid refresh tags where
85     the 'url=' part is missing. Anonymously reported in #2986382.
86     While at it, update the description to mention the fact that only
87     refresh tags with refresh times above 9 seconds are covered.
88   - javascript needs to be blocked with +handle-as-empty-document to
89     work around Firefox bug 492459.  So move .js blockers from
90     +block{Might be a web-bug.} -handle-as-empty-document to
91     +block{Might be a web-bug.} +handle-as-empty-document.
92   - ijbswa-Feature Requests-3006719 - Block 160x578 Banners.
93   - Block another omniture tracking domain.
94   - Added a range-requests tagger.
95   - Added two sections to get Flickr's Ajax interface working with
96     default pre-settings. If you change the configuration to block
97     cookies by default, you'll need additional exceptions.
98     Reported by Mathias Homann in #3101419 and by Patrick on ijbswa-users@.
99
100 - Documentation improvements:
101   - Explicitly mention how to match all URLs.
102   - Consistently recommend socks5 in the Tor FAQ entry and mention
103     its advantage compared to socks4a. Reported by David in #2960129.
104   - Slightly improve the explanation of why filtering may appear
105     slower than it is.
106   - Grammar fixes for the ACL section.
107   - Fixed a link to the 'intercepting' entry and add another one.
108   - Rename the 'Other' section to 'Mailing Lists' and reword it
109     to make it clear that nobody is forced to use the trackers
110   - Note that 'anonymously' posting on the trackers may not always
111     be possible.
112   - Suggest to enable debug 32768 when suspecting parsing problems.
113
114 - Privoxy-Log-Parser improvements:
115   - Gather statistics for ressources, methods, and HTTP versions
116     used by the client.
117   - Also gather statistics for blocked and redirected requests.
118   - Provide the percentage of keep-alive offers the client accepted.
119   - Add a --url-statistics-threshold option.
120   - Add a --host-statistics-threshold option to also gather
121     statistics about how many request where made per host.
122   - Fix a bug in handle_loglevel_header() where a 'scan: ' got lost.
123   - Add a --shorten-thread-ids option to replace the thread id with
124     a decimal number.
125   - Accept and ignore: Looks like we got the last chunk together
126     with the server headers. We better stop reading.
127   - Accept and ignore: Continue hack in da house.
128   - Accept and higlight: Rejecting connection from 10.0.0.2.
129     Maximum number of connections reached.
130   - Accept and highlight: Loading actions file: /usr/local/etc/privoxy/default.action
131   - Accept and highlight: Loading filter file: /usr/local/etc/privoxy/default.filter
132   - Accept and highlight: Killed all-caps Host header line: HOST: bestproxydb.com
133   - Accept and highlight: Reducing expected bytes to 0. Marking
134     the server socket tainted after throwing 4 bytes away.
135   - Accept: Merged multiple header lines to: 'X-FORWARDED-PROTO: http X-HOST: 127.0.0.1'
136
137 - Code cleanups:
138   - Remove the next member from the client_state struct. Only the main
139     thread needs access to all client states so give it its own struct.
140   - Garbage-collect request_contains_null_bytes().
141   - Ditch redundant code in unload_configfile().
142   - Ditch LogGetURLUnderCursor() which doesn't seem to be used anywhere.
143   - In write_socket(), remove the write-only variable write_len in
144     an ifdef __OS2__ block. Spotted by cppcheck.
145   - In connect_to(), don't declare the variable 'flags' on OS/2 where
146     it isn't used. Spotted by cppcheck.
147   - Limit the scope of various variables. Spotted by cppcheck.
148   - In add_to_iob(), turn an interestingly looking for loop into a
149     boring while loop.
150   - Code cleanup in preparation for external filters.
151   - In listen_loop(), mention the socket on which we accepted the
152     connection, not just the source IP address.
153   - In write_socket(), also log the socket we're writing to.
154   - In log_error(), assert that escaped characters get logged
155     completely or not at all.
156   - In log_error(), assert that ival and sval have reasonable values.
157     There's no reason not to abort() if they don't.
158   - Remove an incorrect cgi_error_unknown() call in a
159     cannnot-happen-situation in send_crunch_response().
160   - Clean up white-space in http_response definition and
161     move the crunch_reason to the beginning.
162   - Turn http_response.reason into an enum and rename it
163     to http_response.crunch_reason.
164   - Silence a 'gcc (Debian 4.3.2-1.1) 4.3.2' warning on i686 GNU/Linux.
165   - Fix white-space in a log message in remove_chunked_transfer_coding().
166     While at it, add a note that the message doesn't seem to
167     be entirely correct and should be improved later on.
168
169 - GNUmakefile improvements:
170   - Use $(SSH) instead of ssh, so one only needs to specify a username once.
171   - Removed references to the action feedback thingy that hasn't been
172     working for years.
173   - Consistently use shell.sourceforge.net instead of shell.sf.net so
174     one doesn't need to check server fingerprints twice.
175   - Removed GNUisms in the webserver and webactions targets so they
176     work with standard tar.
177
178 -----------------------------------------------------------------
179 About Privoxy:
180 -----------------------------------------------------------------
181
182 Privoxy is a non-caching web proxy with advanced filtering capabilities for
183 enhancing privacy, modifying web page data and HTTP headers, controlling
184 access, and removing ads and other obnoxious Internet junk. Privoxy has a
185 flexible configuration and can be customized to suit individual needs and
186 tastes. It has application for both stand-alone systems and multi-user
187 networks.
188
189 Privoxy is Free Software and licensed under the GNU GPLv2.
190
191 Privoxy is an associated project of Software in the Public Interest (SPI).
192
193 Helping hands and donations are welcome:
194
195   * http://www.privoxy.org/faq/general.html#PARTICIPATE
196
197   * http://www.privoxy.org/faq/general.html#DONATE
198
199 At present, Privoxy is known to run on Windows(95, 98, ME, 2000,
200 XP, Vista), Linux (Ubuntu, RedHat, SuSE, Debian, Fedora, Gentoo and
201 others), Mac OSX, OS/2, AmigaOS, FreeBSD, NetBSD, OpenBSD, Solaris, and
202 various other flavors of Unix.
203
204 In addition to the core features of ad blocking and cookie management,
205 Privoxy provides many supplemental features, that give the end-user
206 more control, more privacy and more freedom:
207
208
209     *  Supports "Connection: keep-alive". Outgoing connections can be kept
210        alive independently from the client. Currently not available on all
211        platforms.
212
213     *  Supports IPv6, provided the operating system does so too,
214        and the configure script detects it.
215
216     *  Supports tagging which allows to change the behaviour based on client
217        and server headers.
218
219     *  Can be run as an "intercepting" proxy, which obviates the need to
220        configure browsers individually.
221
222     *  Sophisticated actions and filters for manipulating both server and
223        client headers.
224
225     *  Can be chained with other proxies.
226
227     *  Integrated browser based configuration and control utility at
228        http://config.privoxy.org/ (shortcut: http://p.p/). Browser-based
229        tracing of rule and filter effects. Remote toggling.
230
231     *  Web page filtering (text replacements, removes banners based on size,
232        invisible <quote>web-bugs</quote> and HTML annoyances, etc.)
233
234     *  Modularized configuration that allows for standard settings and user
235        settings to reside in separate files, so that installing updated actions
236        files won't overwrite individual user settings.
237
238     *  Support for Perl Compatible Regular Expressions in the configuration
239        files, and a more sophisticated and flexible configuration syntax.
240
241     *  GIF de-animation.
242
243     *  Bypass many click-tracking scripts (avoids script redirection).
244
245     *  User-customizable HTML templates for most proxy-generated pages (e.g.
246        "blocked" page).
247
248     *  Auto-detection and re-reading of config file changes.
249     
250     *  Most features are controllable on a per-site or per-location basis.
251     
252
253 Download location: 
254    http://sourceforge.net/project/showfiles.php?group_id=11118
255  
256 Home Page: 
257    http://www.privoxy.org/
258
259
260   - Privoxy Developers <ijbswa-developers@lists.sourceforge.net>