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