d18f92e96a718abd0790efba75cecfdd6a73e553
[privoxy.git] / doc / webserver / user-manual / whatsnew.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2 "http://www.w3.org/TR/html4/loose.dtd">
3
4 <html>
5 <head>
6   <title>What's New in this Release</title>
7   <meta name="GENERATOR" content=
8   "Modular DocBook HTML Stylesheet Version 1.79">
9   <link rel="HOME" title="Privoxy 3.0.22 User Manual" href="index.html">
10   <link rel="PREVIOUS" title="Installation" href="installation.html">
11   <link rel="NEXT" title="Quickstart to Using Privoxy" href=
12   "quickstart.html">
13   <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
14   <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
15   <link rel="STYLESHEET" type="text/css" href="p_doc.css">
16 </head>
17
18 <body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
19 "#840084" alink="#0000FF">
20   <div class="NAVHEADER">
21     <table summary="Header navigation table" width="100%" border="0"
22     cellpadding="0" cellspacing="0">
23       <tr>
24         <th colspan="3" align="center">Privoxy 3.0.22 User Manual</th>
25       </tr>
26
27       <tr>
28         <td width="10%" align="left" valign="bottom"><a href=
29         "installation.html" accesskey="P">Prev</a></td>
30
31         <td width="80%" align="center" valign="bottom"></td>
32
33         <td width="10%" align="right" valign="bottom"><a href=
34         "quickstart.html" accesskey="N">Next</a></td>
35       </tr>
36     </table>
37     <hr align="left" width="100%">
38   </div>
39
40   <div class="SECT1">
41     <h1 class="SECT1"><a name="WHATSNEW" id="WHATSNEW">3. What's New in this
42     Release</a></h1>
43
44     <p><span class="APPLICATION">Privoxy 3.0.22</span> stable is mainly a
45     bug-fix release, it also has a couple of new features, though. Note that
46     the first two entries in the ChangeLog below refer to security
47     issues:</p>
48
49     <ul>
50       <li>
51         <p>Bug fixes:</p>
52
53         <ul>
54           <li>
55             <p>Fixed a memory leak when rejecting client connections due to
56             the socket limit being reached (CID 66382). This affected Privoxy
57             3.0.21 when compiled with IPv6 support (on most platforms this is
58             the default).</p>
59           </li>
60
61           <li>
62             <p>Fixed an immediate-use-after-free bug (CID 66394) and two
63             additional unconfirmed use-after-free complaints made by Coverity
64             scan (CID 66391, CID 66376).</p>
65           </li>
66
67           <li>
68             <p>Actually show the FORCE_PREFIX value on the show-status
69             page.</p>
70           </li>
71
72           <li>
73             <p>Properly deal with Keep-Alive headers with timeout= parameters
74             If the timeout still can't be parsed, use the configured timeout
75             instead of preventing the client from keeping the connection
76             alive. Fixes #3615312/#870 reported by Bernard Guillot.</p>
77           </li>
78
79           <li>
80             <p>Not using any filter files no longer results in warning
81             messages unless an action file is referencing header taggers or
82             filters. Reported by Stefan Kurtz in #3614835.</p>
83           </li>
84
85           <li>
86             <p>Fixed a bug that prevented Privoxy from reusing some reusable
87             connections. Two bit masks with different purpose unintentionally
88             shared the same bit.</p>
89           </li>
90
91           <li>
92             <p>A couple of additional bugs were discovered by Coverity Scan.
93             The fixes that are not expected to affect users are not
94             explicitly mentioned here, for details please have a look at the
95             CVS logs.</p>
96           </li>
97         </ul>
98       </li>
99
100       <li>
101         <p>General improvements:</p>
102
103         <ul>
104           <li>
105             <p>Introduced negative tag patterns NO-REQUEST-TAG and
106             NO-RESPONSE-TAG. They apply if no matching tag is found after
107             parsing client or server headers.</p>
108           </li>
109
110           <li>
111             <p>Add support for external filters which allow to process the
112             response body with a script or program written in any language
113             the platform supports. External filters are enabled with
114             +external-filter{} after they have been defined in one of the
115             filter files with a header line starting with "EXTERNAL-FILTER:".
116             External filter support is experimental, not compiled by default
117             and known not to work on all platforms.</p>
118           </li>
119
120           <li>
121             <p>Add support for the 'PATCH' method as defined in RFC5789.</p>
122           </li>
123
124           <li>
125             <p>Reject requests with unsupported Expect header values. Fixes a
126             couple of Co-Advisor tests.</p>
127           </li>
128
129           <li>
130             <p>Normalize the HTTP-version in forwarded requests and
131             responses. This is an explicit RFC 2616 MUST and RFC 7230
132             mandates that intermediaries send their own HTTP-version in
133             forwarded messages.</p>
134           </li>
135
136           <li>
137             <p>Server 'Keep-Alive' headers are no longer forwarded. From a
138             user's point of view it doesn't really matter, but RFC 2616
139             (obsolete) mandates that the header is removed and this fixes a
140             Co-Advisor complaint.</p>
141           </li>
142
143           <li>
144             <p>Change declared template file encoding to UTF-8. The templates
145             already used a subset of UTF-8 anyway and changing the
146             declaration allows to properly display UTF-8 characters used in
147             the action files. This change may require existing action files
148             with ISO-8859-1 characters that aren't valid UTF-8 to be
149             converted to UTF-8. Requested by Sam Chen in #582.</p>
150           </li>
151
152           <li>
153             <p>Do not pass rejected keep-alive timeouts to the server. It
154             might not have caused any problems (we know of), but doing the
155             right thing shouldn't hurt either.</p>
156           </li>
157
158           <li>
159             <p>Let log_error() use its own buffer size #define to make
160             changing the log buffer size slightly less inconvenient.</p>
161           </li>
162
163           <li>
164             <p>Turned single-threaded into a "proper" toggle directive with
165             arguments.</p>
166           </li>
167
168           <li>
169             <p>CGI templates no longer enforce new windows for some
170             links.</p>
171           </li>
172
173           <li>
174             <p>Remove an undocumented workaround ('HOST' header removal) for
175             an Apple iTunes bug that according to #729900 got fixed in
176             2003.</p>
177           </li>
178         </ul>
179       </li>
180
181       <li>
182         <p>Action file improvements:</p>
183
184         <ul>
185           <li>
186             <p>The pattern 'promotions.' is no longer being blocked. Reported
187             by rakista in #3608540.</p>
188           </li>
189
190           <li>
191             <p>Disable fast-redirects for .microsofttranslator.com/.</p>
192           </li>
193
194           <li>
195             <p>Disable filter{banners-by-size} for
196             .dgb-tagungszentren.de/.</p>
197           </li>
198
199           <li>
200             <p>Add adn.speedtest.net as a site-specific unblocker. Support
201             request #3612908.</p>
202           </li>
203
204           <li>
205             <p>Disable filter{banners-by-size} for creativecommons.org/.</p>
206           </li>
207
208           <li>
209             <p>Block requests to data.gosquared.com/. Reported by cbug in
210             #3613653.</p>
211           </li>
212
213           <li>
214             <p>Unblock .conrad./newsletter/. Reported by David Bo in
215             #3614238.</p>
216           </li>
217
218           <li>
219             <p>Unblock .bundestag.de/.</p>
220           </li>
221
222           <li>
223             <p>Unblock .rote-hilfe.de/.</p>
224           </li>
225
226           <li>
227             <p>Disable fast-redirects for .facebook.com/plugins/like.php.</p>
228           </li>
229
230           <li>
231             <p>Unblock Stackexchange popup URLs that aren't used to serve
232             ads. Reported by David Wagner in #3615179.</p>
233           </li>
234
235           <li>
236             <p>Disable fast-redirects for creativecommons.org/.</p>
237           </li>
238
239           <li>
240             <p>Unblock .stopwatchingus.info/.</p>
241           </li>
242
243           <li>
244             <p>Block requests for .adcash.com/script/. Reported by
245             Tyrexionibus in #3615289.</p>
246           </li>
247
248           <li>
249             <p>Disable HTML filters if the response was tagged as JavaScript.
250             Filtering JavaScript code with filters intended to deal with HTML
251             is usually a waste of time and, more importantly, may break
252             stuff.</p>
253           </li>
254
255           <li>
256             <p>Use a custom redirect{} for
257             .washingtonpost.com/wp-apps/imrs\.php\?src= Previously enabling
258             the 'Advanced' settings (or manually enabling +fast-redirects{})
259             prevented some images from being loaded properly.</p>
260           </li>
261
262           <li>
263             <p>Unblock "adina*." Fixes #919 reported by Morton A.
264             Goldberg.</p>
265           </li>
266
267           <li>
268             <p>Block '/.*DigiAd'.</p>
269           </li>
270
271           <li>
272             <p>Unblock 'adele*.'. Reported by Adele Lime in #1663.</p>
273           </li>
274
275           <li>
276             <p>Disable banners-by-size for kggp.de/.</p>
277           </li>
278         </ul>
279       </li>
280
281       <li>
282         <p>Filter file improvements &amp; bug fixes:</p>
283
284         <ul>
285           <li>
286             <p>Decrease the chances that js-annoyances creates invalid
287             JavaScript. Submitted by John McGowan on ijbswa-users@.</p>
288           </li>
289
290           <li>
291             <p>Let the msn filter hide 'related' ads again.</p>
292           </li>
293
294           <li>
295             <p>Remove a stray '1' in the 'html-annoyances' filter.</p>
296           </li>
297
298           <li>
299             <p>Prevent img-reorder from messing up img tags with empty src
300             attributes. Fixes #880 reported by Duncan.</p>
301           </li>
302         </ul>
303       </li>
304
305       <li>
306         <p>Documentation improvements:</p>
307
308         <ul>
309           <li>
310             <p>Updated the 'Would you like to donate?' section.</p>
311           </li>
312
313           <li>
314             <p>Note that invalid forward-override{} parameter syntax isn't
315             detected until the parameter is used.</p>
316           </li>
317
318           <li>
319             <p>Add another +redirect{} example: a shortcut for illumos
320             bugs.</p>
321           </li>
322
323           <li>
324             <p>Make it more obvious that many operating systems support log
325             rotation out of the box.</p>
326           </li>
327
328           <li>
329             <p>Fixed dead links. Reported by Mark Nelson in #3614557.</p>
330           </li>
331
332           <li>
333             <p>Rephrased the 'Why is the configuration so complicated?'
334             answer to be slightly less condescending. Anonymously suggested
335             in #3615122.</p>
336           </li>
337
338           <li>
339             <p>Be more explicit about accept-intercepted-requests's lack of
340             MITM support.</p>
341           </li>
342
343           <li>
344             <p>Make 'demoronizer' FAQ entries more generic.</p>
345           </li>
346
347           <li>
348             <p>Add an example hostname to the --pre-chroot-nslookup
349             description.</p>
350           </li>
351
352           <li>
353             <p>Add an example for a host pattern that matches an IP
354             address.</p>
355           </li>
356
357           <li>
358             <p>Rename the 'domain pattern' to 'host pattern' as it may
359             contain IP addresses as well.</p>
360           </li>
361
362           <li>
363             <p>Recommend forward-socks5t when using Tor. It seems to work
364             fine and modifying the Tor configuration to profit from it hasn't
365             been necessary for a while now.</p>
366           </li>
367
368           <li>
369             <p>Add another redirect{} example to stress that redirect loops
370             can and should be avoided.</p>
371           </li>
372
373           <li>
374             <p>The usual spelling and grammar fixes. Parts of them were
375             reported by Reuben Thomas in #3615276.</p>
376           </li>
377
378           <li>
379             <p>Mention the PCRS option letters T and D in the filter
380             section.</p>
381           </li>
382
383           <li>
384             <p>Clarify that handle-as-empty-doc-returns-ok is still useful
385             and will not be removed without replacement.</p>
386           </li>
387
388           <li>
389             <p>Note that security issues shouldn't be reported using the bug
390             tracker.</p>
391           </li>
392
393           <li>
394             <p>Clarify what Privoxy does if both +block{} and +redirect{}
395             apply.</p>
396           </li>
397
398           <li>
399             <p>Removed the obsolete bookmarklets section.</p>
400           </li>
401         </ul>
402       </li>
403
404       <li>
405         <p>Build system improvements:</p>
406
407         <ul>
408           <li>
409             <p>Let --with-group properly deal with secondary groups. Patch
410             submitted by Anatoly Arzhnikov in #3615187.</p>
411           </li>
412
413           <li>
414             <p>Fix web-actions target.</p>
415           </li>
416
417           <li>
418             <p>Add a web-faq target that only updates the FAQ on the
419             webserver.</p>
420           </li>
421
422           <li>
423             <p>Remove already-commented-out non-portable DOSFILTER
424             alternatives.</p>
425           </li>
426
427           <li>
428             <p>Remove the obsolete targets dok-put and dok-get.</p>
429           </li>
430
431           <li>
432             <p>Add a sf-shell target.</p>
433           </li>
434         </ul>
435       </li>
436     </ul>
437
438     <ul>
439       <li>
440         <p>Known bugs:</p>
441
442         <ul>
443           <li>
444             <p>To compile with --disable-force you need <a href=
445             "http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/project.h?r1=1.208&amp;r2=1.209&amp;view=patch"
446             target="_top">this patch</a> which didn't make it into the
447             release. Thanks to Kai Raven for the report.</p>
448           </li>
449         </ul>
450       </li>
451     </ul>
452
453     <div class="SECT2">
454       <h2 class="SECT2"><a name="UPGRADERSNOTE" id="UPGRADERSNOTE">3.1. Note
455       to Upgraders</a></h2>
456
457       <p>A quick list of things to be aware of before upgrading from earlier
458       versions of <span class="APPLICATION">Privoxy</span>:</p>
459
460       <ul>
461         <li>
462           <p>The recommended way to upgrade <span class=
463           "APPLICATION">Privoxy</span> is to backup your old configuration
464           files, install the new ones, verify that <span class=
465           "APPLICATION">Privoxy</span> is working correctly and finally merge
466           back your changes using <span class="APPLICATION">diff</span> and
467           maybe <span class="APPLICATION">patch</span>.</p>
468
469           <p>There are a number of new features in each <span class=
470           "APPLICATION">Privoxy</span> release and most of them have to be
471           explicitly enabled in the configuration files. Old configuration
472           files obviously don't do that and due to syntax changes using old
473           configuration files with a new <span class=
474           "APPLICATION">Privoxy</span> isn't always possible anyway.</p>
475         </li>
476
477         <li>
478           <p>Note that some installers remove earlier versions completely,
479           including configuration files, therefore you should really save any
480           important configuration files!</p>
481         </li>
482
483         <li>
484           <p>On the other hand, other installers don't overwrite existing
485           configuration files, thinking you will want to do that
486           yourself.</p>
487         </li>
488
489         <li>
490           <p>In the default configuration only fatal errors are logged now.
491           You can change that in the <a href="config.html#DEBUG">debug
492           section</a> of the configuration file. You may also want to enable
493           more verbose logging until you verified that the new <span class=
494           "APPLICATION">Privoxy</span> version is working as expected.</p>
495         </li>
496
497         <li>
498           <p>Three other config file settings are now off by default:
499           <a href="config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>,
500           <a href=
501           "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>,
502           and <a href=
503           "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If you
504           use or want these, you will need to explicitly enable them, and be
505           aware of the security issues involved.</p>
506         </li>
507       </ul>
508     </div>
509   </div>
510
511   <div class="NAVFOOTER">
512     <hr align="left" width="100%">
513
514     <table summary="Footer navigation table" width="100%" border="0"
515     cellpadding="0" cellspacing="0">
516       <tr>
517         <td width="33%" align="left" valign="top"><a href="installation.html"
518         accesskey="P">Prev</a></td>
519
520         <td width="34%" align="center" valign="top"><a href="index.html"
521         accesskey="H">Home</a></td>
522
523         <td width="33%" align="right" valign="top"><a href="quickstart.html"
524         accesskey="N">Next</a></td>
525       </tr>
526
527       <tr>
528         <td width="33%" align="left" valign="top">Installation</td>
529
530         <td width="34%" align="center" valign="top">&nbsp;</td>
531
532         <td width="33%" align="right" valign="top">Quickstart to Using
533         Privoxy</td>
534       </tr>
535     </table>
536   </div>
537 </body>
538 </html>