Bump copyright
[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
182      </para>
183      </listitem>
184     </itemizedlist>
185    </para>
186   </listitem>
187   <listitem>
188    <para>
189     Action file improvements:
190     <itemizedlist>
191     <listitem>
192      <para>
193       Disable filter{banners-by-size} for .freiheitsfoo.de/
194      </para>
195     </listitem>
196     <listitem>
197      <para>
198       Disable filter{banners-by-size} for freebsdfoundation.org/
199      </para>
200     </listitem>
201     <listitem>
202      <para>
203       Disable fast-redirects for consent.youtube.com/
204      </para>
205     </listitem>
206     <listitem>
207      <para>
208       Block requests to ups.xplosion.de/
209      </para>
210     </listitem>
211     <listitem>
212      <para>
213       Block requests for elsa.memoinsights.com/t
214      </para>
215     </listitem>
216     <listitem>
217      <para>
218       Fix a typo in a test.
219      </para>
220     </listitem>
221     <listitem>
222      <para>
223       Disable fast-redirects for launchpad.net/
224      </para>
225     </listitem>
226     <listitem>
227      <para>
228       Unblock .eff.org/
229      </para>
230     </listitem>
231     <listitem>
232      <para>
233       Stop unblocking .org/.*(image|banner) which appears to be too generous.
234      </para>
235     </listitem>
236     <listitem>
237      <para>
238       Unblock adfd.org/
239      </para>
240     </listitem>
241     <listitem>
242      <para>
243       Disable filter{banners-by-link} for .eff.org/
244      </para>
245     </listitem>
246     <listitem>
247      <para>
248       Block requests to odb.outbrain.com/
249      </para>
250     </listitem>
251     <listitem>
252      <para>
253       Disable fast-redirects for .gandi.net/
254      </para>
255     </listitem>
256     <listitem>
257      <para>
258       Disable fast-redirects{} for .onion/.*/status/
259      </para>
260     </listitem>
261     <listitem>
262      <para>
263       Disable fast-redirects{} for twitter.com/.*/status/
264      </para>
265     </listitem>
266     <listitem>
267      <para>
268       Unblock pinkstinks.de/
269      </para>
270     </listitem>
271     <listitem>
272      <para>
273       Disable fast-redirects for .hagalil.com/
274      </para>
275      </listitem>
276     </itemizedlist>
277    </para>
278   </listitem>
279   <listitem>
280    <para>
281     Privoxy-Log-Parser:
282     <itemizedlist>
283     <listitem>
284      <para>
285       Bump version to 0.9.5.
286      </para>
287     </listitem>
288     <listitem>
289      <para>
290       Highlight more log messages.
291      </para>
292     </listitem>
293     <listitem>
294      <para>
295       Highlight the Crunch reason only once. Previously the "crunch reason"
296       could also be highlighted when the URL contained a matching string.
297       The real crunch reason only occurs once per line, so there's no need
298       to continue looking for it after it has been found once.
299       While at it, add a comment with an example log line.
300      </para>
301      </listitem>
302     </itemizedlist>
303    </para>
304   </listitem>
305   <listitem>
306    <para>
307     uagen:
308     <itemizedlist>
309     <listitem>
310      <para>
311       Update BROWSER_VERSION and BROWSER_REVISION to 102.0
312       to match the User-Agent of the current Firefox ESR.
313      </para>
314     </listitem>
315     <listitem>
316      <para>
317       Explicitly document that changing the 'Gecko token' is suspicious.
318      </para>
319     </listitem>
320     <listitem>
321      <para>
322       Consistently use a lower-case 'c' as copyright symbol.
323      </para>
324     </listitem>
325     <listitem>
326      <para>
327       Bump copyright.
328      </para>
329     </listitem>
330     <listitem>
331      <para>
332       Add 'aarch64' as Linux architecture.
333      </para>
334     </listitem>
335     <listitem>
336      <para>
337       Add OpenBSD architecture 'arm64'.
338      </para>
339     </listitem>
340     <listitem>
341      <para>
342       Stop using sparc64 as FreeBSD architecture.
343       It hasn't been supported for a while now.
344      </para>
345     </listitem>
346     <listitem>
347      <para>
348       Bump version.
349      </para>
350      </listitem>
351     </itemizedlist>
352    </para>
353   </listitem>
354   <listitem>
355    <para>
356     Build system:
357     <itemizedlist>
358     <listitem>
359      <para>
360       Makefile: Add a 'dok' target that depends on the 'error' target
361       to show the "You are not using GNU make or did nor run configure"
362       message.
363      </para>
364     </listitem>
365     <listitem>
366      <para>
367       configure: Fix --with-msan option.
368       Also (probably) reported by Andrew Savchenko.
369      </para>
370      </listitem>
371     </itemizedlist>
372    </para>
373   </listitem>
374   <listitem>
375    <para>
376     macOS build system:
377     <itemizedlist>
378     <listitem>
379      <para>
380       HTTPS inspection is enabled when building the macOS binary
381       using OpenSSL as TLS library.
382      </para>
383      </listitem>
384     </itemizedlist>
385    </para>
386   </listitem>
387   <listitem>
388    <para>
389     Documentation:
390     <itemizedlist>
391     <listitem>
392      <para>
393       Add OpenSSL to the list of libraries that may be licensed under the
394       Apache 2.0 license in which case the linked Privoxy binary has to be
395       distributed under the GPLv3 or later.
396      </para>
397     </listitem>
398     <listitem>
399      <para>
400       config: Fix the documented ca-directory default value
401       Reported by avoidr.
402      </para>
403     </listitem>
404     <listitem>
405      <para>
406       Rebuild developer-manual and tidy with 'HTML Tidy for FreeBSD version 5.8.0'
407      </para>
408     </listitem>
409     <listitem>
410      <para>
411       Update developer manual with new macOS packaging instructions.
412      </para>
413      </listitem>
414     </itemizedlist>
415    </para>
416   </listitem>
417  </itemizedlist>
418 </para>