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