7025d15588220c41d38e244551ed96bd0b20fc75
[privoxy.git] / doc / source / changelog.sgml
1 <!--
2  File        :  doc/source/changelog.sgml
3
4  Purpose     :  Entity included in other project documents.
5
6  Copyright (C) 2013-2023 Privoxy Developers https://www.privoxy.org/
7  See LICENSE.
8
9  ======================================================================
10   This file used for inclusion with other documents only.
11  ======================================================================
12
13  If you make changes to this file, please verify the finished
14  docs all display as intended.
15
16  This file is included into:
17
18   user-manual
19 -->
20
21
22 <!--
23  The SGML ChangeLog can be generated with: utils/changelog2doc.pl ChangeLog
24 -->
25
26 <para>
27   <application>Privoxy 3.0.34</application> fixes a few
28   minor bugs and comes with a couple of general improvements
29   and new features.
30 </para>
31 <para>
32   Changes in <application>Privoxy 3.0.34</application> stable:
33 </para>
34 <para>
35  <itemizedlist>
36   <listitem>
37    <para>
38     Bug fixes:
39     <itemizedlist>
40     <listitem>
41      <para>
42       Improve the handling of chunk-encoded responses by buffering the data
43       even if filters are disabled and properly keeping track of where the
44       various chunks are supposed to start and end. Previously Privoxy would
45       merely check the last bytes received to see if they looked like the
46       last-chunk. This failed to work if the last-chunk wasn't received in one
47       read and could also result in actual data being misdetected
48       as last-chunk.
49       Should fix: SF support request #1739.
50       Reported by: withoutname.
51      </para>
52     </listitem>
53     <listitem>
54      <para>
55       remove_chunked_transfer_coding(): Refuse to de-chunk invalid data
56       Previously the data could get corrupted even further.
57       Now we simply pass the unmodified data to the client.
58      </para>
59     </listitem>
60     <listitem>
61      <para>
62       gif_deanimate(): Tolerate multiple image extensions in a row.
63       This allows to deanimate all the gifs on:
64       https://commons.wikimedia.org/wiki/Category:Animated_smilies
65       Fixes SF bug #795 reported by Celejar.
66      </para>
67     </listitem>
68     <listitem>
69      <para>
70       OpenSSL generate_host_certificate(): Use X509_get_subject_name()
71       instead of X509_get_issuer_name() to get the issuer for generated
72       website certificates so there are no warnings in the browser when using
73       an intermediate CA certificate instead of a self-signed root certificate.
74       Problem reported and patch submitted by Chakib Benziane.
75      </para>
76     </listitem>
77     <listitem>
78      <para>
79       can_filter_request_body(): Fix a log message that contained a spurious u.
80      </para>
81     </listitem>
82     <listitem>
83      <para>
84       handle_established_connection(): Check for pending TLS data from the client
85       before checking if data is available on the connection.
86       The TLS library may have already consumed all the data from the client
87       response in which case poll() and select() will not detect that data is
88       available to be read.
89       Sponsored by: Robert Klemme.
90      </para>
91     </listitem>
92     <listitem>
93      <para>
94       ssl_send_certificate_error(): Don't crash if there's no certificate
95       information available. This is only relevant when Privoxy is built with
96       wolfSSL 5.0.0 or later (code not yet published). Earlier wolfSSL versions
97       or the other TLS backends don't seem to trigger the crash.
98      </para>
99     </listitem>
100     <listitem>
101      <para>
102       socks5_connect(): Add support for target hosts specified as IPv4 address
103       Previously the IP address was sent as domain.
104      </para>
105      </listitem>
106     </itemizedlist>
107    </para>
108   </listitem>
109   <listitem>
110    <para>
111     General improvements:
112     <itemizedlist>
113     <listitem>
114      <para>
115       Add a client-body-tagger action which creates tags based on
116       the content of the request body.
117       Sponsored by: Robert Klemme.
118      </para>
119     </listitem>
120     <listitem>
121      <para>
122       When client-body filters are enabled, buffer the whole request
123       before opening a connection to the server.
124       Makes it less likely that the server connection times out
125       and we don't open a connection if the buffering fails anyway.
126       Sponsored by: Robert Klemme.
127      </para>
128     </listitem>
129     <listitem>
130      <para>
131       Add periods to a couple of log messages.
132      </para>
133     </listitem>
134     <listitem>
135      <para>
136       accept_connection(): Add missing space to a log message.
137      </para>
138     </listitem>
139     <listitem>
140      <para>
141       Initialize ca-related defaults with strdup_or_die() so errors
142       aren't silently ignored.
143      </para>
144     </listitem>
145     <listitem>
146      <para>
147       make_path: Use malloc_or_die() in cases where allocation errors
148       were already fatal anyway.
149      </para>
150     </listitem>
151     <listitem>
152      <para>
153       handle_established_connection(): Improve an error message slightly.
154      </para>
155     </listitem>
156     <listitem>
157      <para>
158       receive_client_request(): Reject https URLs without CONNECT request.
159      </para>
160     </listitem>
161     <listitem>
162      <para>
163       Include all requests in the statistics if mutexes are available.
164       Previously in case of reused connections only the last request got
165       counted. The statistics still aren't perfect but it's an improvement.
166      </para>
167     </listitem>
168     <listitem>
169      <para>
170       Add read_socks_reply() and start using it in socks5_connect()
171       to apply the socket timeout more consistently.
172      </para>
173     </listitem>
174     <listitem>
175      <para>
176       socks5_connect(): Deal with domain names in the socks reply
177      </para>
178     </listitem>
179     <listitem>
180      <para>
181       Add a filter for bundeswehr.de that hides the cookie and
182       privacy info banner.
183      </para>
184      </listitem>
185     </itemizedlist>
186    </para>
187   </listitem>
188   <listitem>
189    <para>
190     Action file improvements:
191     <itemizedlist>
192     <listitem>
193      <para>
194       Disable filter{banners-by-size} for .freiheitsfoo.de/.
195      </para>
196     </listitem>
197     <listitem>
198      <para>
199       Disable filter{banners-by-size} for freebsdfoundation.org/.
200      </para>
201     </listitem>
202     <listitem>
203      <para>
204       Disable fast-redirects for consent.youtube.com/.
205      </para>
206     </listitem>
207     <listitem>
208      <para>
209       Block requests to ups.xplosion.de/.
210      </para>
211     </listitem>
212     <listitem>
213      <para>
214       Block requests for elsa.memoinsights.com/t.
215      </para>
216     </listitem>
217     <listitem>
218      <para>
219       Fix a typo in a test.
220      </para>
221     </listitem>
222     <listitem>
223      <para>
224       Disable fast-redirects for launchpad.net/.
225      </para>
226     </listitem>
227     <listitem>
228      <para>
229       Unblock .eff.org/.
230      </para>
231     </listitem>
232     <listitem>
233      <para>
234       Stop unblocking .org/.*(image|banner) which appears to be too generous
235       The example URL http://www.gnu.org/graphics/gnu-head-banner.png is
236       already unblocked due to .gnu.org being unblocked.
237      </para>
238     </listitem>
239     <listitem>
240      <para>
241       Unblock adfd.org/.
242      </para>
243     </listitem>
244     <listitem>
245      <para>
246       Disable filter{banners-by-link} for .eff.org/.
247      </para>
248     </listitem>
249     <listitem>
250      <para>
251       Block requests to odb.outbrain.com/.
252      </para>
253     </listitem>
254     <listitem>
255      <para>
256       Disable fast-redirects for .gandi.net/.
257      </para>
258     </listitem>
259     <listitem>
260      <para>
261       Disable fast-redirects{} for .onion/.*/status/.
262      </para>
263     </listitem>
264     <listitem>
265      <para>
266       Disable fast-redirects{} for twitter.com/.*/status/.
267      </para>
268     </listitem>
269     <listitem>
270      <para>
271       Unblock pinkstinks.de/.
272      </para>
273     </listitem>
274     <listitem>
275      <para>
276       Disable fast-redirects for .hagalil.com/.
277      </para>
278      </listitem>
279     </itemizedlist>
280    </para>
281   </listitem>
282   <listitem>
283    <para>
284     Privoxy-Log-Parser:
285     <itemizedlist>
286     <listitem>
287      <para>
288       Bump version to 0.9.5.
289      </para>
290     </listitem>
291     <listitem>
292      <para>
293       Highlight more log messages.
294      </para>
295     </listitem>
296     <listitem>
297      <para>
298       Highlight the Crunch reason only once. Previously the "crunch reason"
299       could also be highlighted when the URL contained a matching string.
300       The real crunch reason only occurs once per line, so there's no need
301       to continue looking for it after it has been found once.
302       While at it, add a comment with an example log line.
303      </para>
304      </listitem>
305     </itemizedlist>
306    </para>
307   </listitem>
308   <listitem>
309    <para>
310     uagen:
311     <itemizedlist>
312     <listitem>
313      <para>
314       Bump version to 1.2.4.
315      </para>
316     </listitem>
317     <listitem>
318      <para>
319       Update BROWSER_VERSION and BROWSER_REVISION to 102.0
320       to match the User-Agent of the current Firefox ESR.
321      </para>
322     </listitem>
323     <listitem>
324      <para>
325       Explicitly document that changing the 'Gecko token' is suspicious.
326      </para>
327     </listitem>
328     <listitem>
329      <para>
330       Consistently use a lower-case 'c' as copyright symbol.
331      </para>
332     </listitem>
333     <listitem>
334      <para>
335       Bump copyright.
336      </para>
337     </listitem>
338     <listitem>
339      <para>
340       Add 'aarch64' as Linux architecture.
341      </para>
342     </listitem>
343     <listitem>
344      <para>
345       Add OpenBSD architecture 'arm64'.
346      </para>
347     </listitem>
348     <listitem>
349      <para>
350       Stop using sparc64 as FreeBSD architecture.
351       It hasn't been supported for a while now.
352      </para>
353      </listitem>
354     </itemizedlist>
355    </para>
356   </listitem>
357   <listitem>
358    <para>
359     Build system:
360     <itemizedlist>
361     <listitem>
362      <para>
363       Makefile: Add a 'dok' target that depends on the 'error' target
364       to show the "You are not using GNU make or did nor run configure"
365       message.
366      </para>
367     </listitem>
368     <listitem>
369      <para>
370       configure: Fix --with-msan option.
371       Also (probably) reported by Andrew Savchenko.
372      </para>
373      </listitem>
374     </itemizedlist>
375    </para>
376   </listitem>
377   <listitem>
378    <para>
379     macOS build system:
380     <itemizedlist>
381     <listitem>
382      <para>
383       Enable HTTPS inspection when building the macOS binary
384       (using OpenSSL as TLS library).
385      </para>
386      </listitem>
387     </itemizedlist>
388    </para>
389   </listitem>
390   <listitem>
391    <para>
392     Documentation:
393     <itemizedlist>
394     <listitem>
395      <para>
396       Add OpenSSL to the list of libraries that may be licensed under the
397       Apache 2.0 license in which case the linked Privoxy binary has to be
398       distributed under the GPLv3 or later.
399      </para>
400     </listitem>
401     <listitem>
402      <para>
403       config: Fix the documented ca-directory default value.
404       Reported by avoidr.
405      </para>
406     </listitem>
407     <listitem>
408      <para>
409       Rebuild developer-manual and tidy with 'HTML Tidy for FreeBSD version 5.8.0'.
410      </para>
411     </listitem>
412     <listitem>
413      <para>
414       Update developer manual with new macOS packaging instructions.
415      </para>
416      </listitem>
417     </itemizedlist>
418    </para>
419   </listitem>
420  </itemizedlist>
421 </para>