aa2a5e7a05760ab8e49103703dd039a4bcef02cc
[privoxy.git] / doc / webserver / user-manual / whatsnew.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
2 <HTML
3 ><HEAD
4 ><TITLE
5 >What's New in this Release</TITLE
6 ><META
7 NAME="GENERATOR"
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
9 REL="HOME"
10 TITLE="Privoxy 3.0.15 User Manual"
11 HREF="index.html"><LINK
12 REL="PREVIOUS"
13 TITLE="Installation"
14 HREF="installation.html"><LINK
15 REL="NEXT"
16 TITLE="Quickstart to Using Privoxy"
17 HREF="quickstart.html"><LINK
18 REL="STYLESHEET"
19 TYPE="text/css"
20 HREF="../p_doc.css"><META
21 HTTP-EQUIV="Content-Type"
22 CONTENT="text/html;
23 charset=ISO-8859-1">
24 <LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
25 </head
26 ><BODY
27 CLASS="SECT1"
28 BGCOLOR="#EEEEEE"
29 TEXT="#000000"
30 LINK="#0000FF"
31 VLINK="#840084"
32 ALINK="#0000FF"
33 ><DIV
34 CLASS="NAVHEADER"
35 ><TABLE
36 SUMMARY="Header navigation table"
37 WIDTH="100%"
38 BORDER="0"
39 CELLPADDING="0"
40 CELLSPACING="0"
41 ><TR
42 ><TH
43 COLSPAN="3"
44 ALIGN="center"
45 >Privoxy 3.0.15 User Manual</TH
46 ></TR
47 ><TR
48 ><TD
49 WIDTH="10%"
50 ALIGN="left"
51 VALIGN="bottom"
52 ><A
53 HREF="installation.html"
54 ACCESSKEY="P"
55 >Prev</A
56 ></TD
57 ><TD
58 WIDTH="80%"
59 ALIGN="center"
60 VALIGN="bottom"
61 ></TD
62 ><TD
63 WIDTH="10%"
64 ALIGN="right"
65 VALIGN="bottom"
66 ><A
67 HREF="quickstart.html"
68 ACCESSKEY="N"
69 >Next</A
70 ></TD
71 ></TR
72 ></TABLE
73 ><HR
74 ALIGN="LEFT"
75 WIDTH="100%"></DIV
76 ><DIV
77 CLASS="SECT1"
78 ><H1
79 CLASS="SECT1"
80 ><A
81 NAME="WHATSNEW"
82 >3. What's New in this Release</A
83 ></H1
84 ><P
85 > <SPAN
86 CLASS="APPLICATION"
87 >Privoxy 3.0.15 beta</SPAN
88 > is a bug-fix release
89  for the previous beta. The changes since 3.0.14 are:</P
90 ><P
91 > <P
92 ></P
93 ><UL
94 ><LI
95 ><P
96 >    In case of missing server data, no error message is send to the
97     client if the request arrived on a reused connection. The client
98     is then supposed to silently retry the request without bothering
99     the user. This should significantly reduce the frequency of the
100     "No server or forwarder data received" error message many users
101     reported.
102    </P
103 ></LI
104 ><LI
105 ><P
106 >    More reliable detection of prematurely closed client sockets
107     with keep-alive enabled.
108    </P
109 ></LI
110 ><LI
111 ><P
112 >    FEATURE_CONNECTION_KEEP_ALIVE is decoupled from
113     FEATURE_CONNECTION_SHARING and now available on
114     all platforms.
115    </P
116 ></LI
117 ><LI
118 ><P
119 >    Improved handling of POST requests on reused connections.
120     Should fix problems with stalled connections after submitting
121     form data with some browser configurations.
122    </P
123 ></LI
124 ><LI
125 ><P
126 >    Fixed various latency calculation issues.
127    </P
128 ></LI
129 ><LI
130 ><P
131 >    Allows the client to pass NTLM authentication requests to a
132     forwarding proxy. This was already assumed and hinted to work
133     in 3.0.13 beta but actually didn't. Now it's confirmed to work
134     with IE, Firefox and Chrome.
135     Thanks to Francois Botha and Wan-Teh Chang
136    </P
137 ></LI
138 ><LI
139 ><P
140 >    Fixed a calculation problem if receiving the server headers
141     takes more than two reads, that could cause Privoxy to terminate
142     the connection prematurely. Reported by Oliver.
143    </P
144 ></LI
145 ><LI
146 ><P
147 >    Compiles again on platforms such as OpenBSD and systems
148     using earlier glibc version that don't support AI_ADDRCONFIG.
149     Anonymously submitted in #2872591.
150    </P
151 ></LI
152 ><LI
153 ><P
154 >    A bunch of MS VC project files and Suse and Redhat RPM spec
155     files have been removed as they were no longer maintained for
156     quite some time.
157    </P
158 ></LI
159 ><LI
160 ><P
161 >    Overly long action lines are properly rejected with a proper
162     error message. Previously they would be either rejected as
163     invalid or cause a core dump through abort().
164    </P
165 ></LI
166 ><LI
167 ><P
168 >    Already timed-out connections are no longer temporarily remembered.
169     They weren't reused anyway, but wasted a socket slot.
170    </P
171 ></LI
172 ><LI
173 ><P
174 >    len refers to the number of bytes actually read which might
175     differ from the ones received. Adjust log messages accordingly.
176    </P
177 ></LI
178 ><LI
179 ><P
180 >    The optional JavaScript on the CGI page uses encodeURIComponent()
181     instead of escape() which doesn't encode all characters that matter.
182     Anonymously reported in #2832722.
183    </P
184 ></LI
185 ><LI
186 ><P
187 >    Fix gcc45 warnings in decompress_iob().
188    </P
189 ></LI
190 ><LI
191 ><P
192 >    Various log message improvements.
193    </P
194 ></LI
195 ><LI
196 ><P
197 >    Privoxy-Regression-Test supports redirect tests.
198    </P
199 ></LI
200 ><LI
201 ><P
202 >    Privoxy-Log-Parser can gather some connection statistics.
203    </P
204 ></LI
205 ></UL
206 ></P
207 ><P
208 > If you missed the previous two beta versions, you may also be
209  interested in the additional changes since since 3.0.12, the
210  last stable release:</P
211 ><P
212 > <P
213 ></P
214 ><UL
215 ><LI
216 ><P
217 >    Added IPv6 support. Thanks to Petr Pisar who not only provided
218     the initial patch but also helped a lot with the integration.
219    </P
220 ></LI
221 ><LI
222 ><P
223 >    Added client-side keep-alive support.
224    </P
225 ></LI
226 ><LI
227 ><P
228 >    The connection sharing code is only used if the connection-sharing
229     option is enabled.
230    </P
231 ></LI
232 ><LI
233 ><P
234 >    The latency is taken into account when evaluating whether or not to
235     reuse a connection. This should significantly reduce the number of
236     connections problems several users reported.
237    </P
238 ></LI
239 ><LI
240 ><P
241 >    The max-client-connections option has been added to restrict
242     the number of client connections below a value enforced by
243     the operating system.
244    </P
245 ></LI
246 ><LI
247 ><P
248 >    If the server doesn't specify how long the connection stays alive,
249     Privoxy errs on the safe side of caution and assumes it's only a second.
250    </P
251 ></LI
252 ><LI
253 ><P
254 >    Setting keep-alive-timeout to 0 disables keep-alive support. Previously
255     Privoxy would claim to allow persistence but not reuse the connection.
256    </P
257 ></LI
258 ><LI
259 ><P
260 >    Pipelined requests are less likely to be mistaken for the request
261     body of the previous request. Note that Privoxy still has no real
262     pipeline support and will either serialize pipelined requests or
263     drop them in which case the client has to resent them.
264    </P
265 ></LI
266 ><LI
267 ><P
268 >    Fixed a crash on some Windows versions when header randomization
269     is enabled and the date couldn't be parsed.
270    </P
271 ></LI
272 ><LI
273 ><P
274 >    Privoxy's keep-alive timeout for the current connection is reduced
275     to the one specified in the client's Keep-Alive header.
276    </P
277 ></LI
278 ><LI
279 ><P
280 >    For HTTP/1.1 requests, Privoxy implies keep-alive support by not
281     setting any Connection header instead of using 'Connection: keep-alive'.
282    </P
283 ></LI
284 ><LI
285 ><P
286 >    If the socket isn't reusable, Privoxy doesn't temporarily waste
287     a socket slot to remember the connection.
288    </P
289 ></LI
290 ><LI
291 ><P
292 >    If keep-alive support is disabled but compiled in, the client's
293     Keep-Alive header is removed.
294    </P
295 ></LI
296 ><LI
297 ><P
298 >    Fixed a bug on mingw32 where downloading large files failed if
299     keep-alive support was enabled.
300    </P
301 ></LI
302 ><LI
303 ><P
304 >    Fixed a bug that (at least theoretically) could cause log
305     timestamps to be occasionally off by about a second.
306    </P
307 ></LI
308 ><LI
309 ><P
310 >    The configure script respects the $PATH variable when searching
311     for groups and id.
312    </P
313 ></LI
314 ><LI
315 ><P
316 >    Compressed content with extra fields couldn't be decompressed
317     and would get passed to the client unfiltered. This problem
318     has only be detected through statical analysis with clang as
319     nobody seems to be using extra fields anyway.
320    </P
321 ></LI
322 ><LI
323 ><P
324 >    If the server resets the Connection after sending only the headers
325     Privoxy forwards what it got to the client. Previously Privoxy
326     would deliver an error message instead.
327    </P
328 ></LI
329 ><LI
330 ><P
331 >    Error messages in case of connection timeouts use the right
332     HTTP status code.
333    </P
334 ></LI
335 ><LI
336 ><P
337 >    If spawning a child to handle a request fails, the client
338     gets an error message and Privoxy continues to listen for
339     new requests right away.
340    </P
341 ></LI
342 ><LI
343 ><P
344 >    The error messages in case of server-connection timeouts or
345     prematurely closed server connections are now template-based.
346    </P
347 ></LI
348 ><LI
349 ><P
350 >    If zlib support isn't compiled in, Privoxy no longer tries to
351     filter compressed content unless explicitly asked to do so.
352    </P
353 ></LI
354 ><LI
355 ><P
356 >    In case of connections that are denied based on ACL directives,
357     the memory used for the client IP is no longer leaked.
358    </P
359 ></LI
360 ><LI
361 ><P
362 >    Fixed another small memory leak if the client request times out
363     while waiting for client headers other than the request line.
364    </P
365 ></LI
366 ><LI
367 ><P
368 >    The client socket is kept open until the server socket has
369     been marked as unused. This should increase the chances that
370     the still-open connection will be reused for the client's next
371     request to the same destination. Note that this only matters
372     if connection-sharing is enabled.
373    </P
374 ></LI
375 ><LI
376 ><P
377 >    A TODO list has been added to the source tarballs to give potential
378     volunteers a better idea of what the current goals are. Donations
379     are still welcome too: http://www.privoxy.org/faq/general.html#DONATE
380    </P
381 ></LI
382 ></UL
383 ></P
384 ><DIV
385 CLASS="SECT2"
386 ><H2
387 CLASS="SECT2"
388 ><A
389 NAME="UPGRADERSNOTE"
390 >3.1. Note to Upgraders</A
391 ></H2
392 ><P
393 > A quick list of things to be aware of before upgrading from earlier 
394  versions of <SPAN
395 CLASS="APPLICATION"
396 >Privoxy</SPAN
397 >:</P
398 ><P
399 > <P
400 ></P
401 ><UL
402 ><LI
403 ><P
404 >   The recommended way to upgrade <SPAN
405 CLASS="APPLICATION"
406 >Privoxy</SPAN
407 > is to backup your old 
408    configuration files, install the new ones, verify that <SPAN
409 CLASS="APPLICATION"
410 >Privoxy</SPAN
411 >
412    is working correctly and finally merge back your changes using
413    <SPAN
414 CLASS="APPLICATION"
415 >diff</SPAN
416 > and maybe <SPAN
417 CLASS="APPLICATION"
418 >patch</SPAN
419 >.
420   </P
421 ><P
422 >   There are a number of new features in each <SPAN
423 CLASS="APPLICATION"
424 >Privoxy</SPAN
425 > release and
426    most of them have to be explicitly enabled in the configuration
427    files. Old configuration files obviously don't do that and due
428    to syntax changes using old configuration files with a new
429    <SPAN
430 CLASS="APPLICATION"
431 >Privoxy</SPAN
432 > isn't always possible anyway.
433   </P
434 ></LI
435 ><LI
436 ><P
437 >  
438     Note that some installers remove earlier versions completely,
439     including configuration files, therefore you should really save
440     any important configuration files!
441   </P
442 ></LI
443 ><LI
444 ><P
445 >  
446    On the other hand, other installers don't overwrite existing configuration 
447    files, thinking you will want to do that yourself.
448   </P
449 ></LI
450 ><LI
451 ><P
452 >  
453    <TT
454 CLASS="FILENAME"
455 >standard.action</TT
456 > has been merged into
457    the <TT
458 CLASS="FILENAME"
459 >default.action</TT
460 > file.
461   </P
462 ></LI
463 ><LI
464 ><P
465 >   In the default configuration only fatal errors are logged now.
466    You can change that in the <A
467 HREF="config.html#DEBUG"
468 >debug section</A
469 >
470    of the configuration file. You may also want to enable more verbose
471    logging until you verified that the new <SPAN
472 CLASS="APPLICATION"
473 >Privoxy</SPAN
474 > version is working
475    as expected.
476   </P
477 ></LI
478 ><LI
479 ><P
480 >     Three other config file settings are now off by default: 
481      <A
482 HREF="config.html#ENABLE-REMOTE-TOGGLE"
483 >enable-remote-toggle</A
484 >,
485      <A
486 HREF="config.html#ENABLE-REMOTE-HTTP-TOGGLE"
487 >enable-remote-http-toggle</A
488 >,
489      and  <A
490 HREF="config.html#ENABLE-EDIT-ACTIONS"
491 >enable-edit-actions</A
492 >. 
493      If you use or want these, you will need to explicitly enable them, and
494      be aware of the security issues involved. 
495     </P
496 ></LI
497 ></UL
498 ></P
499 ></DIV
500 ></DIV
501 ><DIV
502 CLASS="NAVFOOTER"
503 ><HR
504 ALIGN="LEFT"
505 WIDTH="100%"><TABLE
506 SUMMARY="Footer navigation table"
507 WIDTH="100%"
508 BORDER="0"
509 CELLPADDING="0"
510 CELLSPACING="0"
511 ><TR
512 ><TD
513 WIDTH="33%"
514 ALIGN="left"
515 VALIGN="top"
516 ><A
517 HREF="installation.html"
518 ACCESSKEY="P"
519 >Prev</A
520 ></TD
521 ><TD
522 WIDTH="34%"
523 ALIGN="center"
524 VALIGN="top"
525 ><A
526 HREF="index.html"
527 ACCESSKEY="H"
528 >Home</A
529 ></TD
530 ><TD
531 WIDTH="33%"
532 ALIGN="right"
533 VALIGN="top"
534 ><A
535 HREF="quickstart.html"
536 ACCESSKEY="N"
537 >Next</A
538 ></TD
539 ></TR
540 ><TR
541 ><TD
542 WIDTH="33%"
543 ALIGN="left"
544 VALIGN="top"
545 >Installation</TD
546 ><TD
547 WIDTH="34%"
548 ALIGN="center"
549 VALIGN="top"
550 >&nbsp;</TD
551 ><TD
552 WIDTH="33%"
553 ALIGN="right"
554 VALIGN="top"
555 >Quickstart to Using Privoxy</TD
556 ></TR
557 ></TABLE
558 ></DIV
559 ></BODY
560 ></HTML
561 >