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