The first result of the shiny-new dok-tidy target.
[privoxy.git] / doc / webserver / user-manual / whatsnew.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
2 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
3 <html>
4   <head>
5     <meta name="generator" content="HTML Tidy, see www.w3.org">
6     <title>
7       What's New in this Release
8     </title>
9     <meta name="GENERATOR" content=
10     "Modular DocBook HTML Stylesheet Version 1.79">
11     <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html">
12     <link rel="PREVIOUS" title="Installation" href="installation.html">
13     <link rel="NEXT" title="Quickstart to Using Privoxy" href=
14     "quickstart.html">
15     <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
16     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
17     <link rel="STYLESHEET" type="text/css" href="p_doc.css">
18 <style type="text/css">
19  body {
20   background-color: #EEEEEE;
21   color: #000000;
22  }
23  :link { color: #0000FF }
24  :visited { color: #840084 }
25  :active { color: #0000FF }
26  hr.c1 {text-align: left}
27 </style>
28   </head>
29   <body class="SECT1">
30     <div class="NAVHEADER">
31       <table summary="Header navigation table" width="100%" border="0"
32       cellpadding="0" cellspacing="0">
33         <tr>
34           <th colspan="3" align="center">
35             Privoxy 3.0.18 User Manual
36           </th>
37         </tr>
38         <tr>
39           <td width="10%" align="left" valign="bottom">
40             <a href="installation.html" accesskey="P">Prev</a>
41           </td>
42           <td width="80%" align="center" valign="bottom">
43           </td>
44           <td width="10%" align="right" valign="bottom">
45             <a href="quickstart.html" accesskey="N">Next</a>
46           </td>
47         </tr>
48       </table>
49       <hr width="100%" class="c1">
50     </div>
51     <div class="SECT1">
52       <h1 class="SECT1">
53         <a name="WHATSNEW">3. What's New in this Release</a>
54       </h1>
55       <p>
56         <span class="APPLICATION">Privoxy 3.0.17</span> is a stable release.
57         The changes since 3.0.16 stable are:
58       </p>
59       <p>
60       </p>
61       <ul>
62         <li>
63           <p>
64             Fixed last-chunk-detection for responses where the content was
65             small enough to be read with the body, causing Privoxy to wait
66             for the end of the content until the server closed the connection
67             or the request timed out. Reported by "Karsten" in #3028326.
68           </p>
69         </li>
70         <li>
71           <p>
72             Responses with status code 204 weren't properly detected as
73             body-less like RFC2616 mandates. Like the previous bug, this
74             caused Privoxy to wait for the end of the content until the
75             server closed the connection or the request timed out. Fixes
76             #3022042 and #3025553, reported by a user with no visible name.
77             Most likely also fixes a bunch of other AJAX-related problem
78             reports that got closed in the past due to insufficient
79             information and lack of feedback.
80           </p>
81         </li>
82         <li>
83           <p>
84             Fixed an ACL bug that made it impossible to build a blacklist.
85             Usually the ACL directives are used in a whitelist, which worked
86             as expected, but blacklisting is still useful for public proxies
87             where one only needs to deny known abusers access.
88           </p>
89         </li>
90         <li>
91           <p>
92             Added LOG_LEVEL_RECEIVED to log the not-yet-parsed data read from
93             the network. This should make debugging various parsing issues a
94             lot easier.
95           </p>
96         </li>
97         <li>
98           <p>
99             The IPv6 code is enabled by default on Windows versions that
100             support it. Patch submitted by oCameLo in #2942729.
101           </p>
102         </li>
103         <li>
104           <p>
105             In mingw32 versions, the user.filter file is reachable through
106             the GUI, just like default.filter is. Feature request 3040263.
107           </p>
108         </li>
109         <li>
110           <p>
111             Added the configure option --enable-large-file-support to set a
112             few defines that are required by platforms like GNU/Linux to
113             support files larger then 2GB. Mainly interesting for users
114             without proper logfile management.
115           </p>
116         </li>
117         <li>
118           <p>
119             Logging with "debug 16" no longer stops at the first nul byte
120             which is pretty useless. Non-printable characters are replaced
121             with their hex value so the result can't span multiple lines
122             making parsing them harder then necessary.
123           </p>
124         </li>
125         <li>
126           <p>
127             Privoxy logs when reading an action, filter or trust file.
128           </p>
129         </li>
130         <li>
131           <p>
132             Fixed incorrect regression test markup which caused a test in
133             3.0.16 to fail while Privoxy itself was working correctly. While
134             Privoxy accepts hide-referer, too, the action name is actually
135             hide-referrer which is also the name used one the final results
136             page, where the test expected the alias.
137           </p>
138         </li>
139         <li>
140           <p>
141             CGI interface improvements:
142           </p>
143           <ul>
144             <li>
145               <p>
146                 In finish_http_response(), continue to add the 'Connection:
147                 close' header if the client connection will not be kept
148                 alive. Anonymously pointed out in #2987454.
149               </p>
150             </li>
151             <li>
152               <p>
153                 Apostrophes in block messages no longer cause parse errors
154                 when the blocked page is viewed with JavaScript enabled.
155                 Reported by dg1727 in #3062296.
156               </p>
157             </li>
158             <li>
159               <p>
160                 Fix a bunch of anchors that used underscores instead of
161                 dashes.
162               </p>
163             </li>
164             <li>
165               <p>
166                 Allow to keep the client connection alive after crunching the
167                 previous request. Already opened server connections can be
168                 kept alive, too.
169               </p>
170             </li>
171             <li>
172               <p>
173                 In cgi_show_url_info(), don't forget to prefix URLs that only
174                 contain http:// or https:// in the path. Fixes #2975765
175                 reported by Adam Piggott.
176               </p>
177             </li>
178             <li>
179               <p>
180                 Show the 404 CGI page if cgi_send_user_manual() is called
181                 while local user manual delivery is disabled.
182               </p>
183             </li>
184           </ul>
185         </li>
186         <li>
187           <p>
188             Action file improvements:
189           </p>
190           <ul>
191             <li>
192               <p>
193                 Enable user.filter by default. Suggested by David White in
194                 #3001830.
195               </p>
196             </li>
197             <li>
198               <p>
199                 Block .sitestat.com/. Reported by johnd16 in #3002725.
200               </p>
201             </li>
202             <li>
203               <p>
204                 Block .atemda.com/. Reported by johnd16 in #3002723.
205               </p>
206             </li>
207             <li>
208               <p>
209                 Block js.adlink.net/. Reported by johnd16 in #3002720.
210               </p>
211             </li>
212             <li>
213               <p>
214                 Block .analytics.yahoo.com/. Reported by johnd16 in #3002713.
215               </p>
216             </li>
217             <li>
218               <p>
219                 Block sb.scorecardresearch.com, too. Reported by dg1727 in
220                 #2992652.
221               </p>
222             </li>
223             <li>
224               <p>
225                 Fix problems noticed on Yahoo mail and news pages.
226               </p>
227             </li>
228             <li>
229               <p>
230                 Remove the too broad yahoo section, only keeping the
231                 fast-redirects exception as discussed on ijbswa-devel@.
232               </p>
233             </li>
234             <li>
235               <p>
236                 Don't block adesklets.sourceforge.net. Reported in #2974204.
237               </p>
238             </li>
239             <li>
240               <p>
241                 Block chartbeat ping tracking. Reported in #2975895.
242               </p>
243             </li>
244             <li>
245               <p>
246                 Tag CSS and image requests with cautious and medium settings,
247                 too.
248               </p>
249             </li>
250             <li>
251               <p>
252                 Don't handle view.atdmt.com as image. It's used for
253                 click-throughs so users should be able to "go there anyway".
254                 Reported by Adam Piggott in #2975927.
255               </p>
256             </li>
257             <li>
258               <p>
259                 Also let the refresh-tags filter remove invalid refresh tags
260                 where the 'url=' part is missing. Anonymously reported in
261                 #2986382. While at it, update the description to mention the
262                 fact that only refresh tags with refresh times above 9
263                 seconds are covered.
264               </p>
265             </li>
266             <li>
267               <p>
268                 javascript needs to be blocked with +handle-as-empty-document
269                 to work around Firefox bug 492459. So move .js blockers from
270                 +block{Might be a web-bug.} -handle-as-empty-document to
271                 +block{Might be a web-bug.} +handle-as-empty-document.
272               </p>
273             </li>
274             <li>
275               <p>
276                 ijbswa-Feature Requests-3006719 - Block 160x578 Banners.
277               </p>
278             </li>
279             <li>
280               <p>
281                 Block another omniture tracking domain.
282               </p>
283             </li>
284             <li>
285               <p>
286                 Added a range-requests tagger.
287               </p>
288             </li>
289             <li>
290               <p>
291                 Added two sections to get Flickr's Ajax interface working
292                 with default pre-settings. If you change the configuration to
293                 block cookies by default, you'll need additional exceptions.
294                 Reported by Mathias Homann in #3101419 and by Patrick on
295                 ijbswa-users@.
296               </p>
297             </li>
298           </ul>
299         </li>
300         <li>
301           <p>
302             Documentation improvements:
303           </p>
304           <ul>
305             <li>
306               <p>
307                 Explicitly mention how to match all URLs.
308               </p>
309             </li>
310             <li>
311               <p>
312                 Consistently recommend socks5 in the Tor FAQ entry and
313                 mention its advantage compared to socks4a. Reported by David
314                 in #2960129.
315               </p>
316             </li>
317             <li>
318               <p>
319                 Slightly improve the explanation of why filtering may appear
320                 slower than it is.
321               </p>
322             </li>
323             <li>
324               <p>
325                 Grammar fixes for the ACL section.
326               </p>
327             </li>
328             <li>
329               <p>
330                 Fixed a link to the 'intercepting' entry and add another one.
331               </p>
332             </li>
333             <li>
334               <p>
335                 Rename the 'Other' section to 'Mailing Lists' and reword it
336                 to make it clear that nobody is forced to use the trackers
337               </p>
338             </li>
339             <li>
340               <p>
341                 Note that 'anonymously' posting on the trackers may not
342                 always be possible.
343               </p>
344             </li>
345             <li>
346               <p>
347                 Suggest to enable debug 32768 when suspecting parsing
348                 problems.
349               </p>
350             </li>
351           </ul>
352         </li>
353         <li>
354           <p>
355             Privoxy-Log-Parser improvements:
356           </p>
357           <ul>
358             <li>
359               <p>
360                 Gather statistics for ressources, methods, and HTTP versions
361                 used by the client.
362               </p>
363             </li>
364             <li>
365               <p>
366                 Also gather statistics for blocked and redirected requests.
367               </p>
368             </li>
369             <li>
370               <p>
371                 Provide the percentage of keep-alive offers the client
372                 accepted.
373               </p>
374             </li>
375             <li>
376               <p>
377                 Add a --url-statistics-threshold option.
378               </p>
379             </li>
380             <li>
381               <p>
382                 Add a --host-statistics-threshold option to also gather
383                 statistics about how many request where made per host.
384               </p>
385             </li>
386             <li>
387               <p>
388                 Fix a bug in handle_loglevel_header() where a 'scan: ' got
389                 lost.
390               </p>
391             </li>
392             <li>
393               <p>
394                 Add a --shorten-thread-ids option to replace the thread id
395                 with a decimal number.
396               </p>
397             </li>
398             <li>
399               <p>
400                 Accept and ignore: Looks like we got the last chunk together
401                 with the server headers. We better stop reading.
402               </p>
403             </li>
404             <li>
405               <p>
406                 Accept and ignore: Continue hack in da house.
407               </p>
408             </li>
409             <li>
410               <p>
411                 Accept and higlight: Rejecting connection from 10.0.0.2.
412                 Maximum number of connections reached.
413               </p>
414             </li>
415             <li>
416               <p>
417                 Accept and highlight: Loading actions file:
418                 /usr/local/etc/privoxy/default.action
419               </p>
420             </li>
421             <li>
422               <p>
423                 Accept and highlight: Loading filter file:
424                 /usr/local/etc/privoxy/default.filter
425               </p>
426             </li>
427             <li>
428               <p>
429                 Accept and highlight: Killed all-caps Host header line: HOST:
430                 bestproxydb.com
431               </p>
432             </li>
433             <li>
434               <p>
435                 Accept and highlight: Reducing expected bytes to 0. Marking
436                 the server socket tainted after throwing 4 bytes away.
437               </p>
438             </li>
439             <li>
440               <p>
441                 Accept: Merged multiple header lines to: 'X-FORWARDED-PROTO:
442                 http X-HOST: 127.0.0.1'
443               </p>
444             </li>
445           </ul>
446         </li>
447         <li>
448           <p>
449             Code cleanups:
450           </p>
451           <ul>
452             <li>
453               <p>
454                 Remove the next member from the client_state struct. Only the
455                 main thread needs access to all client states so give it its
456                 own struct.
457               </p>
458             </li>
459             <li>
460               <p>
461                 Garbage-collect request_contains_null_bytes().
462               </p>
463             </li>
464             <li>
465               <p>
466                 Ditch redundant code in unload_configfile().
467               </p>
468             </li>
469             <li>
470               <p>
471                 Ditch LogGetURLUnderCursor() which doesn't seem to be used
472                 anywhere.
473               </p>
474             </li>
475             <li>
476               <p>
477                 In write_socket(), remove the write-only variable write_len
478                 in an ifdef __OS2__ block. Spotted by cppcheck.
479               </p>
480             </li>
481             <li>
482               <p>
483                 In connect_to(), don't declare the variable 'flags' on OS/2
484                 where it isn't used. Spotted by cppcheck.
485               </p>
486             </li>
487             <li>
488               <p>
489                 Limit the scope of various variables. Spotted by cppcheck.
490               </p>
491             </li>
492             <li>
493               <p>
494                 In add_to_iob(), turn an interestingly looking for loop into
495                 a boring while loop.
496               </p>
497             </li>
498             <li>
499               <p>
500                 Code cleanup in preparation for external filters.
501               </p>
502             </li>
503             <li>
504               <p>
505                 In listen_loop(), mention the socket on which we accepted the
506                 connection, not just the source IP address.
507               </p>
508             </li>
509             <li>
510               <p>
511                 In write_socket(), also log the socket we're writing to.
512               </p>
513             </li>
514             <li>
515               <p>
516                 In log_error(), assert that escaped characters get logged
517                 completely or not at all.
518               </p>
519             </li>
520             <li>
521               <p>
522                 In log_error(), assert that ival and sval have reasonable
523                 values. There's no reason not to abort() if they don't.
524               </p>
525             </li>
526             <li>
527               <p>
528                 Remove an incorrect cgi_error_unknown() call in a
529                 cannot-happen-situation in send_crunch_response().
530               </p>
531             </li>
532             <li>
533               <p>
534                 Clean up white-space in http_response definition and move the
535                 crunch_reason to the beginning.
536               </p>
537             </li>
538             <li>
539               <p>
540                 Turn http_response.reason into an enum and rename it to
541                 http_response.crunch_reason.
542               </p>
543             </li>
544             <li>
545               <p>
546                 Silence a 'gcc (Debian 4.3.2-1.1) 4.3.2' warning on i686
547                 GNU/Linux.
548               </p>
549             </li>
550             <li>
551               <p>
552                 Fix white-space in a log message in
553                 remove_chunked_transfer_coding(). While at it, add a note
554                 that the message doesn't seem to be entirely correct and
555                 should be improved later on.
556               </p>
557             </li>
558           </ul>
559         </li>
560         <li>
561           <p>
562             GNUmakefile improvements:
563           </p>
564           <ul>
565             <li>
566               <p>
567                 Use $(SSH) instead of ssh, so one only needs to specify a
568                 username once.
569               </p>
570             </li>
571             <li>
572               <p>
573                 Removed references to the action feedback thingy that hasn't
574                 been working for years.
575               </p>
576             </li>
577             <li>
578               <p>
579                 Consistently use shell.sourceforge.net instead of
580                 shell.sf.net so one doesn't need to check server fingerprints
581                 twice.
582               </p>
583             </li>
584             <li>
585               <p>
586                 Removed GNUisms in the webserver and webactions targets so
587                 they work with standard tar.
588               </p>
589             </li>
590           </ul>
591         </li>
592       </ul>
593
594       <div class="SECT2">
595         <h2 class="SECT2">
596           <a name="UPGRADERSNOTE">3.1. Note to Upgraders</a>
597         </h2>
598         <p>
599           A quick list of things to be aware of before upgrading from earlier
600           versions of <span class="APPLICATION">Privoxy</span>:
601         </p>
602         <p>
603         </p>
604         <ul>
605           <li>
606             <p>
607               The recommended way to upgrade <span class=
608               "APPLICATION">Privoxy</span> is to backup your old
609               configuration files, install the new ones, verify that <span
610               class="APPLICATION">Privoxy</span> is working correctly and
611               finally merge back your changes using <span class=
612               "APPLICATION">diff</span> and maybe <span class=
613               "APPLICATION">patch</span>.
614             </p>
615             <p>
616               There are a number of new features in each <span class=
617               "APPLICATION">Privoxy</span> release and most of them have to
618               be explicitly enabled in the configuration files. Old
619               configuration files obviously don't do that and due to syntax
620               changes using old configuration files with a new <span class=
621               "APPLICATION">Privoxy</span> isn't always possible anyway.
622             </p>
623           </li>
624           <li>
625             <p>
626               Note that some installers remove earlier versions completely,
627               including configuration files, therefore you should really save
628               any important configuration files!
629             </p>
630           </li>
631           <li>
632             <p>
633               On the other hand, other installers don't overwrite existing
634               configuration files, thinking you will want to do that
635               yourself.
636             </p>
637           </li>
638           <li>
639             <p>
640               <tt class="FILENAME">standard.action</tt> has been merged into
641               the <tt class="FILENAME">default.action</tt> file.
642             </p>
643           </li>
644           <li>
645             <p>
646               In the default configuration only fatal errors are logged now.
647               You can change that in the <a href="config.html#DEBUG">debug
648               section</a> of the configuration file. You may also want to
649               enable more verbose logging until you verified that the new
650               <span class="APPLICATION">Privoxy</span> version is working as
651               expected.
652             </p>
653           </li>
654           <li>
655             <p>
656               Three other config file settings are now off by default: <a
657               href=
658               "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>, <a
659               href=
660               "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>,
661               and <a href=
662               "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If
663               you use or want these, you will need to explicitly enable them,
664               and be aware of the security issues involved.
665             </p>
666           </li>
667         </ul>
668       </div>
669     </div>
670     <div class="NAVFOOTER">
671       <hr width="100%" class="c1">
672       <table summary="Footer navigation table" width="100%" border="0"
673       cellpadding="0" cellspacing="0">
674         <tr>
675           <td width="33%" align="left" valign="top">
676             <a href="installation.html" accesskey="P">Prev</a>
677           </td>
678           <td width="34%" align="center" valign="top">
679             <a href="index.html" accesskey="H">Home</a>
680           </td>
681           <td width="33%" align="right" valign="top">
682             <a href="quickstart.html" accesskey="N">Next</a>
683           </td>
684         </tr>
685         <tr>
686           <td width="33%" align="left" valign="top">
687             Installation
688           </td>
689           <td width="34%" align="center" valign="top">
690             &nbsp;
691           </td>
692           <td width="33%" align="right" valign="top">
693             Quickstart to Using Privoxy
694           </td>
695         </tr>
696       </table>
697     </div>
698   </body>
699 </html>
700