Add the '/js/slider\.js' removal to the ChangeLog
[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.21 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.21 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.21</span> stable is a bug-fix
45     release for Privoxy 3.0.20 beta. It also addresses a security issue that
46     affects all previous Privoxy versions (on some platforms). The changes
47     since 3.0.20 beta are:</p>
48
49     <ul>
50       <li>
51         <p>Bug fixes:</p>
52
53         <ul>
54           <li>
55             <p>On POSIX-like platforms, network sockets with file descriptor
56             values above FD_SETSIZE are properly rejected. Previously they
57             could cause memory corruption in configurations that allowed the
58             limit to be reached.</p>
59           </li>
60
61           <li>
62             <p>Compiles on OS/2 again now that unistd.h is only included on
63             platforms that have it.</p>
64           </li>
65         </ul>
66       </li>
67
68       <li>
69         <p>General improvements:</p>
70
71         <ul>
72           <li>
73             <p>The show-status page shows the FEATURE_STRPTIME_SANITY_CHECKS
74             status.</p>
75           </li>
76
77           <li>
78             <p>A couple of assert()s that could theoretically dereference
79             NULL pointers in debug builds have been relocated.</p>
80           </li>
81
82           <li>
83             <p>Added an LSB info block to the generic start script. Based on
84             a patch from Natxo Asenjo.</p>
85           </li>
86
87           <li>
88             <p>The max-client-connections default has been changed to 128
89             which should be more than enough for most setups.</p>
90           </li>
91         </ul>
92       </li>
93
94       <li>
95         <p>Action file improvements:</p>
96
97         <ul>
98           <li>
99             <p>Block rover.ebay./ar.*\&amp;adtype= instead of
100             "/.*\&amp;adtype=" which caused too man false positives. Reported
101             by u302320 in #360284, additional feedback from Adam Piggott.</p>
102           </li>
103
104           <li>
105             <p>Unblock '.advrider.com/' and '/.*ADVrider'. Anonymously
106             reported in #3603636.</p>
107           </li>
108           <li>
109             <p>Stop blocking '/js/slider\.js'.
110             Reported by Adam Piggott in #3606635 and _lvm in #2791160.</p>
111           </li>
112         </ul>
113       </li>
114
115       <li>
116         <p>Filter file improvements:</p>
117
118         <ul>
119           <li>
120             <p>Added an iframes filter.</p>
121           </li>
122         </ul>
123       </li>
124
125       <li>
126         <p>Documentation improvements:</p>
127
128         <ul>
129           <li>
130             <p>The whole GPLv2 text is included in the user manual now, so
131             Privoxy can serve it itself and the user can read it without
132             having to wade through GPLv3 ads first.</p>
133           </li>
134
135           <li>
136             <p>Properly numbered and underlined a couple of section titles in
137             the config that where previously overlooked due to a flaw in the
138             conversion script. Reported by Ralf Jungblut.</p>
139           </li>
140
141           <li>
142             <p>Improved the support instruction to hopefully make it harder
143             to unintentionally provide insufficient information when
144             requesting support. Previously it wasn't obvious that the
145             information we need in bug reports is usually also required in
146             support requests.</p>
147           </li>
148
149           <li>
150             <p>Removed documentation about packages that haven't been
151             provided in years.</p>
152           </li>
153         </ul>
154       </li>
155
156       <li>
157         <p>Privoxy-Regression-Test:</p>
158
159         <ul>
160           <li>
161             <p>Only log the test number when not running in verbose mode The
162             position of the test is rarely relevant and it previously wasn't
163             exactly obvious which one of the numbers was useful to repeat the
164             test with --test-number.</p>
165           </li>
166         </ul>
167       </li>
168
169       <li>
170         <p>GNUmakefile improvements:</p>
171
172         <ul>
173           <li>
174             <p>Factor generate-config-file out of config-file to make testing
175             more convenient.</p>
176           </li>
177
178           <li>
179             <p>The clean target now also takes care of patch leftovers.</p>
180           </li>
181         </ul>
182       </li>
183     </ul>
184
185     <p><span class="APPLICATION">Privoxy 3.0.20</span> beta contained the
186     following changes compared to the previous stable release:</p>
187
188     <ul>
189       <li>
190         <p>Bug fixes:</p>
191
192         <ul>
193           <li>
194             <p>Client sockets are now properly shutdown and drained before
195             being closed. This fixes page truncation issues with clients that
196             aggressively pipeline data on platforms that otherwise discard
197             already written data. The issue mainly affected Opera users and
198             was initially reported by Kevin in #3464439, szotsaki provided
199             additional information to track down the cause.</p>
200           </li>
201
202           <li>
203             <p>Fix latency calculation for shared connections (disabled by
204             default). It was broken since their introduction in 2009. The
205             calculated latency for most connections would be 0 in which case
206             the timeout detection failed to account for the real latency.</p>
207           </li>
208
209           <li>
210             <p>Reject URLs with invalid port. Previously they were parsed
211             incorrectly and characters between the port number and the first
212             slash were silently dropped as shown by curl test 187.</p>
213           </li>
214
215           <li>
216             <p>The default-server-timeout and socket-timeout directives
217             accept 0 as valid value.</p>
218           </li>
219
220           <li>
221             <p>Fix a race condition on Windows that could cause Privoxy to
222             become unresponsive after toggling it on or off through the
223             taskbar icon. Reported by Tim H. in #3525694.</p>
224           </li>
225
226           <li>
227             <p>Fix the compilation on Windows when configured without IPv6
228             support.</p>
229           </li>
230
231           <li>
232             <p>Fix an assertion that could cause debug builds to abort() in
233             case of socks5 connection failures with "debug 2" enabled.</p>
234           </li>
235
236           <li>
237             <p>Fix an assertion that could cause debug builds to abort() if a
238             filter contained nul bytes in the replacement text.</p>
239           </li>
240         </ul>
241       </li>
242
243       <li>
244         <p>General improvements:</p>
245
246         <ul>
247           <li>
248             <p>Significantly improved keep-alive support for both client and
249             server connections.</p>
250           </li>
251
252           <li>
253             <p>New debug log level 65536 which logs all actions that were
254             applied to the request.</p>
255           </li>
256
257           <li>
258             <p>New directive client-header-order to forward client headers in
259             a different order than the one in which they arrived.</p>
260           </li>
261
262           <li>
263             <p>New directive tolerate-pipelining to allow client-side
264             pipelining. If enabled (3.0.20 beta enables it by default),
265             Privoxy will keep pipelined client requests around to deal with
266             them once the current request has been served.</p>
267           </li>
268
269           <li>
270             <p>New --config-test option to let Privoxy exit after checking
271             whether or not the configuration seems valid. The limitations
272             noted in TODO #22 and #23 still apply. Based on a patch by
273             Ramkumar Chinchani.</p>
274           </li>
275
276           <li>
277             <p>New limit-cookie-lifetime{} action to let cookies expire
278             before the end of the session. Suggested by Rick Sykes in
279             #1049575.</p>
280           </li>
281
282           <li>
283             <p>Increase the hard-coded maximum number of actions and filter
284             files from 10 to 30 (each). It doesn't significantly affect
285             Privoxy's memory usage and recompiling wasn't an option for all
286             Privoxy users that reached the limit.</p>
287           </li>
288
289           <li>
290             <p>Add support for chunk-encoded client request bodies.
291             Previously chunk-encoded request bodies weren't guaranteed to be
292             forwarded correctly, so this can also be considered a bug fix
293             although chunk-encoded request bodies aren't commonly used in the
294             real world.</p>
295           </li>
296
297           <li>
298             <p>Add support for Tor's optimistic-data SOCKS extension, which
299             can reduce the latency for requests on newly created connections.
300             Currently only the headers are sent optimistically and only if
301             the client request has already been read completely which rules
302             out requests with large bodies.</p>
303           </li>
304
305           <li>
306             <p>After preventing the client from pipelining, don't signal
307             keep-alive intentions. When looking at the response headers
308             alone, it previously wasn't obvious from the client's perspective
309             that no additional responses should be expected.</p>
310           </li>
311
312           <li>
313             <p>Stop considering client sockets tainted after receiving a
314             request with body. It hasn't been necessary for a while now and
315             unnecessarily causes test failures when using curl's test
316             suite.</p>
317           </li>
318
319           <li>
320             <p>Allow HTTP/1.0 clients to signal interest in keep-alive
321             through the Proxy-Connection header. While such client are rare
322             in the real world, it doesn't hurt and couple of curl tests rely
323             on it.</p>
324           </li>
325
326           <li>
327             <p>Only remove duplicated Content-Type headers when filters are
328             enabled. If they are not it doesn't cause ill effects and the
329             user might not want it. Downgrade the removal message to
330             LOG_LEVEL_HEADER to clarify that it's not an error in Privoxy and
331             is unlikely to cause any problems in general. Anonymously
332             reported in #3599335.</p>
333           </li>
334
335           <li>
336             <p>Set the socket option SO_LINGER for the client socket.</p>
337           </li>
338
339           <li>
340             <p>Move several variable declarations to the beginning of their
341             code block. It's required when compiling with gcc 2.95 which is
342             still used on some platforms. Initial patch submitted by Simon
343             South in #3564815.</p>
344           </li>
345
346           <li>
347             <p>Optionally try to sanity-check strptime() results before
348             trusting them. Broken strptime() implementations have caused
349             problems in the past and the most recent offender seems to be
350             FreeBSD's libc (standards/173421).</p>
351           </li>
352
353           <li>
354             <p>When filtering is enabled, let Range headers pass if the range
355             starts at the beginning. This should work around (or at least
356             reduce) the video playback issues with various Apple clients as
357             reported by Duc in #3426305.</p>
358           </li>
359
360           <li>
361             <p>Do not confuse a client hanging up with a connection time out.
362             If a client closes its side of the connection without sending a
363             request line, do not send the CLIENT_CONNECTION_TIMEOUT_RESPONSE,
364             but report the condition properly.</p>
365           </li>
366
367           <li>
368             <p>Allow closing curly braces as part of action values as long as
369             they are escaped.</p>
370           </li>
371
372           <li>
373             <p>On Windows, the logfile is now written before showing the GUI
374             error message which blocks until the user acknowledges it.
375             Reported by Adriaan in #3593603.</p>
376           </li>
377
378           <li>
379             <p>Remove an unreasonable parameter limit in the CGI interface.
380             The new parameter limit depends on the memory available and is
381             currently unlikely to be reachable, due to other limits in both
382             Privoxy and common clients. Reported by Andrew on
383             ijbswa-users@.</p>
384           </li>
385
386           <li>
387             <p>Decrease the chances of parse failures after requests with
388             unsupported methods were sent to the CGI interface.</p>
389           </li>
390         </ul>
391       </li>
392
393       <li>
394         <p>Action file improvements:</p>
395
396         <ul>
397           <li>
398             <p>Remove the comment that indicated that updated default.action
399             versions are released on their own.</p>
400           </li>
401
402           <li>
403             <p>Block 'optimize.indieclick.com/' and
404             'optimized-by.rubiconproject.com/'</p>
405           </li>
406
407           <li>
408             <p>Unblock 'adjamblog.wordpress.com/' and
409             'adjamblog.files.wordpress.com/'. Reported by Ryan Farmer in
410             #3496116.</p>
411           </li>
412
413           <li>
414             <p>Unblock '/.*Bugtracker'. Reported by pwhk in #3522341.</p>
415           </li>
416
417           <li>
418             <p>Add test URLs for '.freebsd.org' and '.watson.org'.</p>
419           </li>
420
421           <li>
422             <p>Unblock '.urbandictionary.com/popular'.</p>
423           </li>
424
425           <li>
426             <p>Block '.adnxs.com/'.</p>
427           </li>
428
429           <li>
430             <p>Block 'farm.plista.com/widgetdata.php'.</p>
431           </li>
432
433           <li>
434             <p>Block 'rotation.linuxnewmedia.com/'.</p>
435           </li>
436
437           <li>
438             <p>Block 'reklamy.sfd.pl/'. Reported by kacperdominik in
439             #3399948.</p>
440           </li>
441
442           <li>
443             <p>Block 'g.adspeed.net/'.</p>
444           </li>
445
446           <li>
447             <p>Unblock 'websupport.wdc.com/'. Reported by Adam Piggot in
448             #3577851.</p>
449           </li>
450
451           <li>
452             <p>Block '/openx/www/delivery/'.</p>
453           </li>
454
455           <li>
456             <p>Disable fast-redirects for '.googleapis.com/'.</p>
457           </li>
458
459           <li>
460             <p>Block 'imp.double.net/'. Reported by David Bo in #3070411.</p>
461           </li>
462
463           <li>
464             <p>Block 'gm-link.com/' which is used for email tracking.
465             Reported by David Bo in #1812733.</p>
466           </li>
467
468           <li>
469             <p>Verify that requests to "bwp." are blocked. URL taken from
470             #1736879 submitted by Francois Marier.</p>
471           </li>
472
473           <li>
474             <p>Block '/.*bannerid='. Reported by Adam Piggott in
475             #2975779.</p>
476           </li>
477
478           <li>
479             <p>Block 'cltomedia.info/delivery/' and '.adexprt.com/'.
480             Anonymously reported in #2965254.</p>
481           </li>
482
483           <li>
484             <p>Block 'de17a.com/'. Reported by David Bo in #3061472.</p>
485           </li>
486
487           <li>
488             <p>Block 'oskar.tradera.com/'. Reported by David Bo in
489             #3060596.</p>
490           </li>
491
492           <li>
493             <p>Block '/scripts/webtrends\.js'. Reported by johnd16 in
494             #3002729.</p>
495           </li>
496
497           <li>
498             <p>Block requests for 'pool.*.adhese.com/'. Reported by johnd16
499             in #3002716.</p>
500           </li>
501
502           <li>
503             <p>Update path pattern for Coremetrics and add tests. Pattern and
504             URLs submitted by Adam Piggott #3168443.</p>
505           </li>
506
507           <li>
508             <p>Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'.
509             Reported by David Bo in #3268832.</p>
510           </li>
511
512           <li>
513             <p>Unblock '.conrad.se/newsletter/banners/'. Reported by David Bo
514             in #3413824.</p>
515           </li>
516
517           <li>
518             <p>Block '.tynt.com/'. Reported by Dan Stahlke in #3421767.</p>
519           </li>
520
521           <li>
522             <p>Unblock '.bbci.co.uk/radio/'. Reported by Adam Piggott in
523             #3569603.</p>
524           </li>
525
526           <li>
527             <p>Block requests to 'service.maxymiser.net/'. Reported by
528             johnd16 in #3118401 (with a previous URL).</p>
529           </li>
530
531           <li>
532             <p>Disable fast-redirects for Google's "let's pretend your
533             computer is infected" page.</p>
534           </li>
535
536           <li>
537             <p>Unblock '/.*download' to resolve actionsfile feedback
538             #3498129. Submitted by Steven Kolins (soundcloud.com not
539             working).</p>
540           </li>
541
542           <li>
543             <p>Unblock '.wlxrs.com/' which is required by hotmail.com. Fixes
544             #3413827 submitted by David Bo.</p>
545           </li>
546
547           <li>
548             <p>Add two unblock patterns for popup radio and TV players.
549             Submitted by Adam Piggott in #3596089.</p>
550           </li>
551         </ul>
552       </li>
553
554       <li>
555         <p>Filter file improvements &amp; bug fixes:</p>
556
557         <ul>
558           <li>
559             <p>Add a referer tagger.</p>
560           </li>
561
562           <li>
563             <p>Reduce the likelihood that the google filter messes up
564             HTML-generating JavaScript. Reported by Zeno Kugy in
565             #3520260.</p>
566           </li>
567         </ul>
568       </li>
569
570       <li>
571         <p>Documentation improvements:</p>
572
573         <ul>
574           <li>
575             <p>Revised all OS X sections due to new packaging module
576             (OSXPackageBuilder).</p>
577           </li>
578
579           <li>
580             <p>Update the list of supported operating systems to clarify that
581             all Windows versions after 95 are expected to work and note that
582             the platform-specific code for AmigaOS and QNX currently isn't
583             maintained.</p>
584           </li>
585
586           <li>
587             <p>Update 'Signals' section, the only explicitly handled signals
588             are SIGINT, SIGTERM and SIGHUP.</p>
589           </li>
590
591           <li>
592             <p>Add Haiku to the list of operating systems on which Privoxy is
593             known to run.</p>
594           </li>
595
596           <li>
597             <p>Add DragonFly to the list of BSDs on which Privoxy is known to
598             run.</p>
599           </li>
600
601           <li>
602             <p>Removed references to redhat-specific documentation set since
603             it no longer exists.</p>
604           </li>
605
606           <li>
607             <p>Removed references to building PDFs since we no longer do
608             so.</p>
609           </li>
610
611           <li>
612             <p>Multiple listen-address directives are supported since 3.0.18,
613             correct the documentation to say so.</p>
614           </li>
615
616           <li>
617             <p>Remove bogus section about long and short being preferable to
618             int.</p>
619           </li>
620
621           <li>
622             <p>Corrected some Internet JunkBuster references to Privoxy.</p>
623           </li>
624
625           <li>
626             <p>Removed references to www.junkbusters.com since it is no
627             longer maintained. Reported by Angelina Matson.</p>
628           </li>
629
630           <li>
631             <p>Various grammar and spelling corrections</p>
632           </li>
633
634           <li>
635             <p>Add a client-header-tagger{} example for disabling filtering
636             for range requests.</p>
637           </li>
638
639           <li>
640             <p>Correct a URL in the "Privoxy with Tor" FAQ.</p>
641           </li>
642
643           <li>
644             <p>Spell 'refresh-tags' correctly. Reported by Don in
645             #3571927.</p>
646           </li>
647
648           <li>
649             <p>Sort manpage options alphabetically.</p>
650           </li>
651
652           <li>
653             <p>Remove an incorrect sentence in the toggle section. The toggle
654             state doesn't affect whether or not the Windows version uses the
655             tray icon. Reported by Zeno Kugy in #3596395.</p>
656           </li>
657
658           <li>
659             <p>Add new contributors since 3.0.19.</p>
660           </li>
661         </ul>
662       </li>
663
664       <li>
665         <p>Log message improvements:</p>
666
667         <ul>
668           <li>
669             <p>When stopping to watch a client socket due to pipelining,
670             additionally log the socket number.</p>
671           </li>
672
673           <li>
674             <p>Log the client socket and its condition before closing it.
675             This makes it more obvious that the socket actually gets closed
676             and should help when diagnosing problems like #3464439.</p>
677           </li>
678
679           <li>
680             <p>In case of SOCKS5 failures, do not explicitly log the server's
681             response. It hasn't helped so far and the response can already be
682             logged by enabling "debug 32768" anyway. This reverts v1.81 and
683             the follow-up bug fix v1.84.</p>
684           </li>
685
686           <li>
687             <p>Relocate the connection-accepted message from listen_loop() to
688             serve(). This way it's printed by the thread that is actually
689             serving the connection which is nice when grepping for thread ids
690             in log files.</p>
691           </li>
692         </ul>
693       </li>
694
695       <li>
696         <p>Code cleanups:</p>
697
698         <ul>
699           <li>
700             <p>Remove compatibility layer for versions prior to 3.0 since it
701             has been obsolete for more than 10 years now.</p>
702           </li>
703
704           <li>
705             <p>Remove the ijb_isupper() and ijb_tolower() macros from
706             parsers.c since they aren't used in this file.</p>
707           </li>
708
709           <li>
710             <p>Removed the 'Functions declared include:' comment sections
711             since they tend to be incomplete, incorrect and out of date and
712             the benefit seems questionable.</p>
713           </li>
714
715           <li>
716             <p>Various comment grammar and comprehensibility
717             improvements.</p>
718           </li>
719
720           <li>
721             <p>Remove a pointless fflush() call in chat(). Flushing all
722             streams pretty much all the time for no obvious reason is
723             ridiculous.</p>
724           </li>
725
726           <li>
727             <p>Relocate ijb_isupper()'s definition to project.h and get the
728             ijb_tolower() definition from there, too.</p>
729           </li>
730
731           <li>
732             <p>Relocate ijb_isdigit()'s definition to project.h.</p>
733           </li>
734
735           <li>
736             <p>Rename ijb_foo macros to privoxy_foo.</p>
737           </li>
738
739           <li>
740             <p>Add malloc_or_die() which will allow to simplify code paths
741             where malloc() failures don't need to be handled gracefully.</p>
742           </li>
743
744           <li>
745             <p>Add strdup_or_die() which will allow to simplify code paths
746             where strdup() failures don't need to be handled gracefully.</p>
747           </li>
748
749           <li>
750             <p>Replace strdup() calls with strdup_or_die() calls where it's
751             safe and simplifies the code.</p>
752           </li>
753
754           <li>
755             <p>Fix white-space around parentheses.</p>
756           </li>
757
758           <li>
759             <p>Add missing white-space behind if's and the following
760             parentheses.</p>
761           </li>
762
763           <li>
764             <p>Unwrap a memcpy() call in resolve_hostname_to_ip().</p>
765           </li>
766
767           <li>
768             <p>Declare pcrs_get_delimiter()'s delimiters[] static const.</p>
769           </li>
770
771           <li>
772             <p>Various optimisations to remove dead code and merge
773             inefficient code structures for improved clarity, performance or
774             code compactness.</p>
775           </li>
776
777           <li>
778             <p>Various data type corrections.</p>
779           </li>
780
781           <li>
782             <p>Change visibility of several code segments when compiling
783             without FEATURE_CONNECTION_KEEP_ALIVE enabled for clarity.</p>
784           </li>
785
786           <li>
787             <p>In pcrs_get_delimiter(), do not use delimiters outside the
788             ASCII range. Fixes a clang complaint.</p>
789           </li>
790
791           <li>
792             <p>Fix an error message in get_last_url() nobody is supposed to
793             see. Reported by Matthew Fischer in #3507301.</p>
794           </li>
795
796           <li>
797             <p>Fix a typo in the no-zlib-support complaint. Patch submitted
798             by Matthew Fischer in #3507304.</p>
799           </li>
800
801           <li>
802             <p>Shorten ssplit()'s prototype by removing the last two
803             arguments. We always want to skip empty fields and ignore leading
804             delimiters, so having parameters for this only complicates the
805             API.</p>
806           </li>
807
808           <li>
809             <p>Use an enum for the type of the action value.</p>
810           </li>
811
812           <li>
813             <p>Rename action_name's member takes_value to value_type as it
814             isn't used as boolean.</p>
815           </li>
816
817           <li>
818             <p>Turn family mismatches in match_sockaddr() into fatal
819             errors.</p>
820           </li>
821
822           <li>
823             <p>Let enlist_unique_header() verify that the caller didn't pass
824             a header containing either \r or \n.</p>
825           </li>
826
827           <li>
828             <p>Change the hashes used in load_config() to unsigned int.
829             That's what hash_string() actually returns and using a
830             potentially larger type is at best useless.</p>
831           </li>
832
833           <li>
834             <p>Use privoxy_tolower() instead of vanilla tolower() with manual
835             casting of the argument.</p>
836           </li>
837
838           <li>
839             <p>Catch ssplit() failures in parse_cgi_parameters().</p>
840           </li>
841         </ul>
842       </li>
843
844       <li>
845         <p>Privoxy-Regression-Test:</p>
846
847         <ul>
848           <li>
849             <p>Add an 'Overwrite condition' directive to skip any matching
850             tests before it. As it has a global scope, using it is more
851             convenient than clowning around with the Ignore directive.</p>
852           </li>
853
854           <li>
855             <p>Log to STDOUT instead of STDERR.</p>
856           </li>
857
858           <li>
859             <p>Include the Privoxy version in the output.</p>
860           </li>
861
862           <li>
863             <p>Various grammar and spelling corrections in documentation and
864             code.</p>
865           </li>
866
867           <li>
868             <p>Additional tests for range requests with filtering
869             enabled.</p>
870           </li>
871
872           <li>
873             <p>Tests with mostly invalid range request.</p>
874           </li>
875
876           <li>
877             <p>Add a couple of hide-if-modified-since{} tests with different
878             date formats.</p>
879           </li>
880
881           <li>
882             <p>Cleaned up the format of the regression-tests.action file to
883             match the format of default.action.</p>
884           </li>
885
886           <li>
887             <p>Remove the "Copyright" line from print_version(). When using
888             --help, every line of screen space matters and thus shouldn't be
889             wasted on things the user doesn't care about.</p>
890           </li>
891         </ul>
892       </li>
893
894       <li>
895         <p>Privoxy-Log-Parser:</p>
896
897         <ul>
898           <li>
899             <p>Improve the --statistics performance by skipping sanity checks
900             for input that shouldn't affect the results anyway. Add a
901             --strict-checks option that enables some of the checks again,
902             just in case anybody cares.</p>
903           </li>
904
905           <li>
906             <p>The distribution of client requests per connection is included
907             in the --statistic output.</p>
908           </li>
909
910           <li>
911             <p>The --accept-unknown-messages option has been removed and the
912             behavior is now the default.</p>
913           </li>
914
915           <li>
916             <p>Accept and (mostly) highlight new log messages introduced with
917             Privoxy 3.0.20.</p>
918           </li>
919         </ul>
920       </li>
921
922       <li>
923         <p>uagen:</p>
924
925         <ul>
926           <li>
927             <p>Bump generated Firefox version to 17.</p>
928           </li>
929         </ul>
930       </li>
931
932       <li>
933         <p>GNUmakefile improvements:</p>
934
935         <ul>
936           <li>
937             <p>The dok-tidy target no longer taints documents with a
938             tidy-mark</p>
939           </li>
940
941           <li>
942             <p>Change RA_MODE from 0664 to 0644. Suggested by Markus Dittrich
943             in #3505445.</p>
944           </li>
945
946           <li>
947             <p>Remove tidy's clean flag as it changes the scope of
948             attributes. Link-specific colors end up being applied to all
949             text. Reported by Adam Piggott in #3569551.</p>
950           </li>
951
952           <li>
953             <p>Leave it up to the user whether or not smart tags are
954             inserted.</p>
955           </li>
956
957           <li>
958             <p>Let w3m itself do the line wrapping for the config file. It
959             works better than fmt as it can honour pre tags causing less
960             unintentional line breaks.</p>
961           </li>
962
963           <li>
964             <p>Ditch a pointless '-r' passed to rm to delete files.</p>
965           </li>
966
967           <li>
968             <p>The config-file target now requires less manual intervention
969             and updates the original config.</p>
970           </li>
971
972           <li>
973             <p>Change WDUMP to generate ASCII. Add WDUMP_UTF8 to allow UTF-8
974             in the AUTHORS file so the names are right.</p>
975           </li>
976
977           <li>
978             <p>Stop pretending that lynx and links are supported for the
979             documentation.</p>
980           </li>
981         </ul>
982       </li>
983
984       <li>
985         <p>configure improvements:</p>
986
987         <ul>
988           <li>
989             <p>On Haiku, do not pass -lpthread to the compiler. Haiku's
990             pthreads implementation is contained in its system library,
991             libroot, so no additional library needs to be searched. Patch
992             submitted by Simon South in #3564815.</p>
993           </li>
994
995           <li>
996             <p>Additional Haiku-specific improvements. Disable checks
997             intended for multi-user systems as Haiku is presently
998             single-user. Group Haiku-specific settings in their own section,
999             following the pattern for Solaris, OS/2 and AmigaOS. Add
1000             additional library-related settings to remove the need for
1001             providing configure with custom LDFLAGS. Submitted by Simon South
1002             in #3574538.</p>
1003           </li>
1004         </ul>
1005       </li>
1006     </ul>
1007
1008     <div class="SECT2">
1009       <h2 class="SECT2"><a name="UPGRADERSNOTE" id="UPGRADERSNOTE">3.1. Note
1010       to Upgraders</a></h2>
1011
1012       <p>A quick list of things to be aware of before upgrading from earlier
1013       versions of <span class="APPLICATION">Privoxy</span>:</p>
1014
1015       <ul>
1016         <li>
1017           <p>The recommended way to upgrade <span class=
1018           "APPLICATION">Privoxy</span> is to backup your old configuration
1019           files, install the new ones, verify that <span class=
1020           "APPLICATION">Privoxy</span> is working correctly and finally merge
1021           back your changes using <span class="APPLICATION">diff</span> and
1022           maybe <span class="APPLICATION">patch</span>.</p>
1023
1024           <p>There are a number of new features in each <span class=
1025           "APPLICATION">Privoxy</span> release and most of them have to be
1026           explicitly enabled in the configuration files. Old configuration
1027           files obviously don't do that and due to syntax changes using old
1028           configuration files with a new <span class=
1029           "APPLICATION">Privoxy</span> isn't always possible anyway.</p>
1030         </li>
1031
1032         <li>
1033           <p>Note that some installers remove earlier versions completely,
1034           including configuration files, therefore you should really save any
1035           important configuration files!</p>
1036         </li>
1037
1038         <li>
1039           <p>On the other hand, other installers don't overwrite existing
1040           configuration files, thinking you will want to do that
1041           yourself.</p>
1042         </li>
1043
1044         <li>
1045           <p>In the default configuration only fatal errors are logged now.
1046           You can change that in the <a href="config.html#DEBUG">debug
1047           section</a> of the configuration file. You may also want to enable
1048           more verbose logging until you verified that the new <span class=
1049           "APPLICATION">Privoxy</span> version is working as expected.</p>
1050         </li>
1051
1052         <li>
1053           <p>Three other config file settings are now off by default:
1054           <a href="config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>,
1055           <a href=
1056           "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>,
1057           and <a href=
1058           "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If you
1059           use or want these, you will need to explicitly enable them, and be
1060           aware of the security issues involved.</p>
1061         </li>
1062       </ul>
1063     </div>
1064   </div>
1065
1066   <div class="NAVFOOTER">
1067     <hr align="left" width="100%">
1068
1069     <table summary="Footer navigation table" width="100%" border="0"
1070     cellpadding="0" cellspacing="0">
1071       <tr>
1072         <td width="33%" align="left" valign="top"><a href="installation.html"
1073         accesskey="P">Prev</a></td>
1074
1075         <td width="34%" align="center" valign="top"><a href="index.html"
1076         accesskey="H">Home</a></td>
1077
1078         <td width="33%" align="right" valign="top"><a href="quickstart.html"
1079         accesskey="N">Next</a></td>
1080       </tr>
1081
1082       <tr>
1083         <td width="33%" align="left" valign="top">Installation</td>
1084
1085         <td width="34%" align="center" valign="top">&nbsp;</td>
1086
1087         <td width="33%" align="right" valign="top">Quickstart to Using
1088         Privoxy</td>
1089       </tr>
1090     </table>
1091   </div>
1092 </body>
1093 </html>