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