Rebuild docs with updated copyright
[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 <html>
4 <head>
5   <title>What's New in this Release</title>
6   <meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79">
7   <link rel="HOME" title="Privoxy 3.0.34 User Manual" href="index.html">
8   <link rel="PREVIOUS" title="Installation" href="installation.html">
9   <link rel="NEXT" title="Quickstart to Using Privoxy" href="quickstart.html">
10   <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
11   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
12   <link rel="STYLESHEET" type="text/css" href="p_doc.css">
13 </head>
14 <body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink="#840084" alink="#0000FF">
15   <div class="NAVHEADER">
16     <table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
17       <tr>
18         <th colspan="3" align="center">Privoxy 3.0.34 User Manual</th>
19       </tr>
20       <tr>
21         <td width="10%" align="left" valign="bottom"><a href="installation.html" accesskey="P">Prev</a></td>
22         <td width="80%" align="center" valign="bottom"></td>
23         <td width="10%" align="right" valign="bottom"><a href="quickstart.html" accesskey="N">Next</a></td>
24       </tr>
25     </table>
26     <hr align="left" width="100%">
27   </div>
28   <div class="SECT1">
29     <h1 class="SECT1"><a name="WHATSNEW" id="WHATSNEW">3. What's New in this Release</a></h1>
30     <p><span class="APPLICATION">Privoxy 3.0.34</span> fixes a few minor bugs and comes with a couple of general
31     improvements and new features.</p>
32     <p>Changes in <span class="APPLICATION">Privoxy 3.0.34</span> stable:</p>
33     <ul>
34       <li>
35         <p>Bug fixes:</p>
36         <ul>
37           <li>
38             <p>Improve the handling of chunk-encoded responses by buffering the data even if filters are disabled and
39             properly keeping track of where the various chunks are supposed to start and end. Previously Privoxy would
40             merely check the last bytes received to see if they looked like the last-chunk. This failed to work if the
41             last-chunk wasn't received in one read and could also result in actual data being misdetected as
42             last-chunk. Should fix: SF support request #1739. Reported by: withoutname.</p>
43           </li>
44           <li>
45             <p>remove_chunked_transfer_coding(): Refuse to de-chunk invalid data Previously the data could get
46             corrupted even further. Now we simply pass the unmodified data to the client.</p>
47           </li>
48           <li>
49             <p>gif_deanimate(): Tolerate multiple image extensions in a row. This allows to deanimate all the gifs on:
50             https://commons.wikimedia.org/wiki/Category:Animated_smilies Fixes SF bug #795 reported by Celejar.</p>
51           </li>
52           <li>
53             <p>OpenSSL generate_host_certificate(): Use X509_get_subject_name() instead of X509_get_issuer_name() to
54             get the issuer for generated website certificates so there are no warnings in the browser when using an
55             intermediate CA certificate instead of a self-signed root certificate. Problem reported and patch submitted
56             by Chakib Benziane.</p>
57           </li>
58           <li>
59             <p>can_filter_request_body(): Fix a log message that contained a spurious u.</p>
60           </li>
61           <li>
62             <p>handle_established_connection(): Check for pending TLS data from the client before checking if data is
63             available on the connection. The TLS library may have already consumed all the data from the client
64             response in which case poll() and select() will not detect that data is available to be read. Sponsored by:
65             Robert Klemme.</p>
66           </li>
67           <li>
68             <p>ssl_send_certificate_error(): Don't crash if there's no certificate information available. This is only
69             relevant when Privoxy is built with wolfSSL 5.0.0 or later (code not yet published). Earlier wolfSSL
70             versions or the other TLS backends don't seem to trigger the crash.</p>
71           </li>
72           <li>
73             <p>socks5_connect(): Add support for target hosts specified as IPv4 address Previously the IP address was
74             sent as domain.</p>
75           </li>
76         </ul>
77       </li>
78       <li>
79         <p>General improvements:</p>
80         <ul>
81           <li>
82             <p>Add a client-body-tagger action which creates tags based on the content of the request body. Sponsored
83             by: Robert Klemme.</p>
84           </li>
85           <li>
86             <p>When client-body filters are enabled, buffer the whole request before opening a connection to the
87             server. Makes it less likely that the server connection times out and we don't open a connection if the
88             buffering fails anyway. Sponsored by: Robert Klemme.</p>
89           </li>
90           <li>
91             <p>Add periods to a couple of log messages.</p>
92           </li>
93           <li>
94             <p>accept_connection(): Add missing space to a log message.</p>
95           </li>
96           <li>
97             <p>Initialize ca-related defaults with strdup_or_die() so errors aren't silently ignored.</p>
98           </li>
99           <li>
100             <p>make_path: Use malloc_or_die() in cases where allocation errors were already fatal anyway.</p>
101           </li>
102           <li>
103             <p>handle_established_connection(): Improve an error message slightly.</p>
104           </li>
105           <li>
106             <p>receive_client_request(): Reject https URLs without CONNECT request.</p>
107           </li>
108           <li>
109             <p>Include all requests in the statistics if mutexes are available. Previously in case of reused
110             connections only the last request got counted. The statistics still aren't perfect but it's an
111             improvement.</p>
112           </li>
113           <li>
114             <p>Add read_socks_reply() and start using it in socks5_connect() to apply the socket timeout more
115             consistently.</p>
116           </li>
117           <li>
118             <p>socks5_connect(): Deal with domain names in the socks reply</p>
119           </li>
120           <li>
121             <p>Add a filter for bundeswehr.de that hides the cookie and privacy info banner.</p>
122           </li>
123         </ul>
124       </li>
125       <li>
126         <p>Action file improvements:</p>
127         <ul>
128           <li>
129             <p>Disable filter{banners-by-size} for .freiheitsfoo.de/.</p>
130           </li>
131           <li>
132             <p>Disable filter{banners-by-size} for freebsdfoundation.org/.</p>
133           </li>
134           <li>
135             <p>Disable fast-redirects for consent.youtube.com/.</p>
136           </li>
137           <li>
138             <p>Block requests to ups.xplosion.de/.</p>
139           </li>
140           <li>
141             <p>Block requests for elsa.memoinsights.com/t.</p>
142           </li>
143           <li>
144             <p>Fix a typo in a test.</p>
145           </li>
146           <li>
147             <p>Disable fast-redirects for launchpad.net/.</p>
148           </li>
149           <li>
150             <p>Unblock .eff.org/.</p>
151           </li>
152           <li>
153             <p>Stop unblocking .org/.*(image|banner) which appears to be too generous The example URL
154             http://www.gnu.org/graphics/gnu-head-banner.png is already unblocked due to .gnu.org being unblocked.</p>
155           </li>
156           <li>
157             <p>Unblock adfd.org/.</p>
158           </li>
159           <li>
160             <p>Disable filter{banners-by-link} for .eff.org/.</p>
161           </li>
162           <li>
163             <p>Block requests to odb.outbrain.com/.</p>
164           </li>
165           <li>
166             <p>Disable fast-redirects for .gandi.net/.</p>
167           </li>
168           <li>
169             <p>Disable fast-redirects{} for .onion/.*/status/.</p>
170           </li>
171           <li>
172             <p>Disable fast-redirects{} for twitter.com/.*/status/.</p>
173           </li>
174           <li>
175             <p>Unblock pinkstinks.de/.</p>
176           </li>
177           <li>
178             <p>Disable fast-redirects for .hagalil.com/.</p>
179           </li>
180         </ul>
181       </li>
182       <li>
183         <p>Privoxy-Log-Parser:</p>
184         <ul>
185           <li>
186             <p>Bump version to 0.9.5.</p>
187           </li>
188           <li>
189             <p>Highlight more log messages.</p>
190           </li>
191           <li>
192             <p>Highlight the Crunch reason only once. Previously the "crunch reason" could also be highlighted when the
193             URL contained a matching string. The real crunch reason only occurs once per line, so there's no need to
194             continue looking for it after it has been found once. While at it, add a comment with an example log
195             line.</p>
196           </li>
197         </ul>
198       </li>
199       <li>
200         <p>uagen:</p>
201         <ul>
202           <li>
203             <p>Bump version to 1.2.4.</p>
204           </li>
205           <li>
206             <p>Update BROWSER_VERSION and BROWSER_REVISION to 102.0 to match the User-Agent of the current Firefox
207             ESR.</p>
208           </li>
209           <li>
210             <p>Explicitly document that changing the 'Gecko token' is suspicious.</p>
211           </li>
212           <li>
213             <p>Consistently use a lower-case 'c' as copyright symbol.</p>
214           </li>
215           <li>
216             <p>Bump copyright.</p>
217           </li>
218           <li>
219             <p>Add 'aarch64' as Linux architecture.</p>
220           </li>
221           <li>
222             <p>Add OpenBSD architecture 'arm64'.</p>
223           </li>
224           <li>
225             <p>Stop using sparc64 as FreeBSD architecture. It hasn't been supported for a while now.</p>
226           </li>
227         </ul>
228       </li>
229       <li>
230         <p>Build system:</p>
231         <ul>
232           <li>
233             <p>Makefile: Add a 'dok' target that depends on the 'error' target to show the "You are not using GNU make
234             or did nor run configure" message.</p>
235           </li>
236           <li>
237             <p>configure: Fix --with-msan option. Also (probably) reported by Andrew Savchenko.</p>
238           </li>
239         </ul>
240       </li>
241       <li>
242         <p>macOS build system:</p>
243         <ul>
244           <li>
245             <p>Enable HTTPS inspection when building the macOS binary (using OpenSSL as TLS library).</p>
246           </li>
247         </ul>
248       </li>
249       <li>
250         <p>Documentation:</p>
251         <ul>
252           <li>
253             <p>Add OpenSSL to the list of libraries that may be licensed under the Apache 2.0 license in which case the
254             linked Privoxy binary has to be distributed under the GPLv3 or later.</p>
255           </li>
256           <li>
257             <p>config: Fix the documented ca-directory default value. Reported by avoidr.</p>
258           </li>
259           <li>
260             <p>Rebuild developer-manual and tidy with 'HTML Tidy for FreeBSD version 5.8.0'.</p>
261           </li>
262           <li>
263             <p>Update developer manual with new macOS packaging instructions.</p>
264           </li>
265           <li>
266             <p>Note that the FreeBSD installation instructions work for ElectroBSD as well.</p>
267           </li>
268           <li>
269             <p>Note that FreeBSD/ElectroBSD users can try to install Privoxy as binary package using 'pkg'.</p>
270           </li>
271         </ul>
272       </li>
273     </ul>
274     <div class="SECT2">
275       <h2 class="SECT2"><a name="UPGRADERSNOTE" id="UPGRADERSNOTE">3.1. Note to Upgraders</a></h2>
276       <p>A quick list of things to be aware of before upgrading from earlier versions of <span class=
277       "APPLICATION">Privoxy</span>:</p>
278       <ul>
279         <li>
280           <p>The recommended way to upgrade <span class="APPLICATION">Privoxy</span> is to backup your old
281           configuration files, install the new ones, verify that <span class="APPLICATION">Privoxy</span> is working
282           correctly and finally merge back your changes using <span class="APPLICATION">diff</span> and maybe
283           <span class="APPLICATION">patch</span>.</p>
284           <p>There are a number of new features in each <span class="APPLICATION">Privoxy</span> release and most of
285           them have to be explicitly enabled in the configuration files. Old configuration files obviously don't do
286           that and due to syntax changes using old configuration files with a new <span class=
287           "APPLICATION">Privoxy</span> isn't always possible anyway.</p>
288         </li>
289         <li>
290           <p>Note that some installers remove earlier versions completely, including configuration files, therefore you
291           should really save any important configuration files!</p>
292         </li>
293         <li>
294           <p>On the other hand, other installers don't overwrite existing configuration files, thinking you will want
295           to do that yourself.</p>
296         </li>
297         <li>
298           <p>In the default configuration only fatal errors are logged now. You can change that in the <a href=
299           "config.html#DEBUG">debug section</a> of the configuration file. You may also want to enable more verbose
300           logging until you verified that the new <span class="APPLICATION">Privoxy</span> version is working as
301           expected.</p>
302         </li>
303         <li>
304           <p>Three other config file settings are now off by default: <a href=
305           "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>, <a href=
306           "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>, and <a href=
307           "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If you use or want these, you will need to
308           explicitly enable them, and be aware of the security issues involved.</p>
309         </li>
310       </ul>
311     </div>
312   </div>
313   <div class="NAVFOOTER">
314     <hr align="left" width="100%">
315     <table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
316       <tr>
317         <td width="33%" align="left" valign="top"><a href="installation.html" accesskey="P">Prev</a></td>
318         <td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">Home</a></td>
319         <td width="33%" align="right" valign="top"><a href="quickstart.html" accesskey="N">Next</a></td>
320       </tr>
321       <tr>
322         <td width="33%" align="left" valign="top">Installation</td>
323         <td width="34%" align="center" valign="top">&nbsp;</td>
324         <td width="33%" align="right" valign="top">Quickstart to Using Privoxy</td>
325       </tr>
326     </table>
327   </div>
328 </body>
329 </html>