Rebuild for 3.0.17 stable
[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.17 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.17 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.16</SPAN
88 > is a stable release.
89  The changes since 3.0.15 beta are:</P
90 ><P
91 > <P
92 ></P
93 ><UL
94 ><LI
95 ><P
96 >    Fixed last-chunk-detection for responses where the content was small
97     enough to be read with the body, causing Privoxy to wait for the
98     end of the content until the server closed the connection.
99     Reported by "Karsten" in #3028326.
100    </P
101 ></LI
102 ><LI
103 ><P
104 >    Responses with status code 204 weren't properly detected as body-less
105     like RFC2616 mandates. Like the previous bug, this caused Privoxy
106     to wait for the end of the content until the server closed the connection.
107     Fixes #3022042 and #3025553, reported by a user with no visible name.
108     Most likely also fixes a bunch of other AJAX-related problem reports
109     that got closed in the past due to insufficient information and lack
110     of feedback.
111    </P
112 ></LI
113 ><LI
114 ><P
115 >    Fixed an ACL bug that made it impossible to build a blacklist.
116     Usually the ACL directives are used in a whitelist, which worked
117     as expected, but blacklisting is still useful for public proxies
118     where one only needs to deny known abusers access.
119    </P
120 ></LI
121 ><LI
122 ><P
123 >    Added LOG_LEVEL_RECEIVED to log the not-yet-parsed data read from the
124     network. This should make debugging various parsing issues a lot easier.
125    </P
126 ></LI
127 ><LI
128 ><P
129 >    The IPv6 code is enabled by default on Windows versions that support it.
130     Patch submitted by oCameLo in #2942729.
131    </P
132 ></LI
133 ><LI
134 ><P
135 >    In mingw32 versions, the user.filter file is reachable through the
136     GUI, just like default.filter is. Feature request 3040263.
137    </P
138 ></LI
139 ><LI
140 ><P
141 >    Added the configure option --enable-large-file-support to set a few
142     defines that are required by platforms like GNU/Linux to support files
143     larger then 2GB. Mainly interesting for users without proper logfile
144     management.
145    </P
146 ></LI
147 ><LI
148 ><P
149 >    Logging with "debug 16" no longer stops at the first nul byte which is
150     pretty useless. Non-printable characters are replaced with their hex value
151     so the result can't span multiple lines making parsing them harder then
152     necessary.
153    </P
154 ></LI
155 ><LI
156 ><P
157 >    Privoxy logs when reading an action, filter or trust file.
158    </P
159 ></LI
160 ><LI
161 ><P
162 >    Fixed incorrect regression test markup which caused a test in
163     3.0.16 to fail while Privoxy itself was working correctly.
164     While Privoxy accepts hide-referer, too, the action name is actually
165     hide-referrer which is also the name used one the final results page,
166     where the test expected the alias.
167    </P
168 ></LI
169 ><LI
170 ><P
171 >    CGI interface improvements:
172     <P
173 ></P
174 ><UL
175 ><LI
176 ><P
177 >      In finish_http_response(), continue to add the 'Connection: close'
178       header if the client connection will not be kept alive.
179       Anonymously pointed out in #2987454.
180      </P
181 ></LI
182 ><LI
183 ><P
184 >      Apostrophes in block messages no longer cause parse errors
185       when the blocked page is viewed with JavaScript enabled.
186       Reported by dg1727 in #3062296.
187      </P
188 ></LI
189 ><LI
190 ><P
191 >      Fix a bunch of anchors that used underscores instead of dashes.
192      </P
193 ></LI
194 ><LI
195 ><P
196 >      Allow to keep the client connection alive after crunching the previous request.
197       Already opened server connections can be kept alive, too.
198      </P
199 ></LI
200 ><LI
201 ><P
202 >      In cgi_show_url_info(), don't forget to prefix URLs that only contain http:// or https:// in the path.
203       Fixes #2975765 reported by Adam Piggott.
204      </P
205 ></LI
206 ><LI
207 ><P
208 >      Show the 404 CGI page if cgi_send_user_manual() is called while
209       local user manual delivery is disabled.
210      </P
211 ></LI
212 ></UL
213 >
214    </P
215 ></LI
216 ><LI
217 ><P
218 >    Action file improvements:
219     <P
220 ></P
221 ><UL
222 ><LI
223 ><P
224 >      Enable user.filter by default. Suggested by David White in #3001830.
225      </P
226 ></LI
227 ><LI
228 ><P
229 >      Block .sitestat.com/. Reported by johnd16 in #3002725.
230      </P
231 ></LI
232 ><LI
233 ><P
234 >      Block .atemda.com/. Reported by johnd16 in #3002723.
235      </P
236 ></LI
237 ><LI
238 ><P
239 >      Block js.adlink.net/. Reported by johnd16 in #3002720.
240      </P
241 ></LI
242 ><LI
243 ><P
244 >      Block .analytics.yahoo.com/. Reported by johnd16 in #3002713.
245      </P
246 ></LI
247 ><LI
248 ><P
249 >      Block sb.scorecardresearch.com, too. Reported by dg1727 in #2992652.
250      </P
251 ></LI
252 ><LI
253 ><P
254 >      Fix problems noticed on Yahoo mail and news pages.
255      </P
256 ></LI
257 ><LI
258 ><P
259 >      Remove the too broad yahoo section, only keeping the
260       fast-redirects exception as discussed on ijbswa-devel@.
261      </P
262 ></LI
263 ><LI
264 ><P
265 >      Don't block adesklets.sourceforge.net. Reported in #2974204.
266      </P
267 ></LI
268 ><LI
269 ><P
270 >      Block chartbeat ping tracking. Reported in #2975895.
271      </P
272 ></LI
273 ><LI
274 ><P
275 >      Tag CSS and image requests with cautious and medium settings, too.
276      </P
277 ></LI
278 ><LI
279 ><P
280 >      Don't handle view.atdmt.com as image. It's used for click-throughs
281       so users should be able to "go there anyway".
282       Reported by Adam Piggott in #2975927.
283      </P
284 ></LI
285 ><LI
286 ><P
287 >      Also let the refresh-tags filter remove invalid refresh tags where
288       the 'url=' part is missing. Anonymously reported in #2986382.
289       While at it, update the description to mention the fact that only
290       refresh tags with refresh times above 9 seconds are covered.
291      </P
292 ></LI
293 ><LI
294 ><P
295 >      javascript needs to be blocked with +handle-as-empty-document to
296       work around Firefox bug 492459.  So move .js blockers from
297       +block{Might be a web-bug.} -handle-as-empty-document
298       to
299       +block{Might be a web-bug.} +handle-as-empty-document
300      </P
301 ></LI
302 ><LI
303 ><P
304 >      ijbswa-Feature Requests-3006719 - Block 160x578 Banners.
305      </P
306 ></LI
307 ><LI
308 ><P
309 >      Block another omniture tracking domain
310      </P
311 ></LI
312 ><LI
313 ><P
314 >      Added a range-requests tagger.
315      </P
316 ></LI
317 ><LI
318 ><P
319 >      Added two sections to get Flickr's Ajax interface working with
320       default pre-settings. If you change the configuration to block
321       cookies by default, you'll need additional exceptions.
322       Reported by Mathias Homann in #3101419 and by Patrick on ijbswa-users@
323      </P
324 ></LI
325 ></UL
326 >
327    </P
328 ></LI
329 ><LI
330 ><P
331 >    Documentation improvements:
332     <P
333 ></P
334 ><UL
335 ><LI
336 ><P
337 >      Explicitly mention how to match all URLs.
338      </P
339 ></LI
340 ><LI
341 ><P
342 >      Consistently recommend socks5 in the Tor FAQ entry and mention
343       its advantage compared to socks4a. Reported by David in #2960129.
344      </P
345 ></LI
346 ><LI
347 ><P
348 >      Slightly improve the explanation of why filtering may appear
349       slower than it is.
350      </P
351 ></LI
352 ><LI
353 ><P
354 >      Grammar fixes for the ACL section.
355      </P
356 ></LI
357 ></UL
358 >
359    </P
360 ></LI
361 ><LI
362 ><P
363 >    Privoxy-Log-Parser improvements:
364     <P
365 ></P
366 ><UL
367 ><LI
368 ><P
369 >      Also gather statistics for blocked and redirected requests.
370      </P
371 ></LI
372 ><LI
373 ><P
374 >      Provide the percentage of keep-alive offers the client accepted.
375      </P
376 ></LI
377 ><LI
378 ><P
379 >      Add a --url-statistics-threshold option.
380      </P
381 ></LI
382 ><LI
383 ><P
384 >      Also gather statistics for ressources, methods, and HTTP versions
385       used by the client.
386      </P
387 ></LI
388 ><LI
389 ><P
390 >      Add a --host-statistics-threshold option to also gather
391       statistics about how many request where made per host.
392      </P
393 ></LI
394 ><LI
395 ><P
396 >      Fix a bug in handle_loglevel_header() where a 'scan: ' got lost.
397      </P
398 ></LI
399 ><LI
400 ><P
401 >      Add a --shorten-thread-ids option to replace the thread id with
402       a decimal number.
403      </P
404 ></LI
405 ><LI
406 ><P
407 >      Accept and ignore: Looks like we got the last chunk together
408       with the server headers. We better stop reading.
409      </P
410 ></LI
411 ><LI
412 ><P
413 >      Accept and ignore: Continue hack in da house.
414      </P
415 ></LI
416 ><LI
417 ><P
418 >      Accept and higlight: Rejecting connection from 10.0.0.2.
419       Maximum number of connections reached.
420      </P
421 ></LI
422 ><LI
423 ><P
424 >      Accept and highlight: Loading actions file: /usr/local/etc/privoxy/default.action
425      </P
426 ></LI
427 ><LI
428 ><P
429 >      Accept and highlight: Loading filter file: /usr/local/etc/privoxy/default.filter
430      </P
431 ></LI
432 ><LI
433 ><P
434 >      Accept and highlight: Killed all-caps Host header line: HOST: bestproxydb.com
435      </P
436 ></LI
437 ><LI
438 ><P
439 >      Accept and highlight: Reducing expected bytes to 0. Marking
440       the server socket tainted after throwing 4 bytes away.
441      </P
442 ></LI
443 ><LI
444 ><P
445 >      Accept: Merged multiple header lines to: 'X-FORWARDED-PROTO: http X-HOST: 127.0.0.1'
446      </P
447 ></LI
448 ></UL
449 >
450    </P
451 ></LI
452 ><LI
453 ><P
454 >    Code cleanups:
455     <P
456 ></P
457 ><UL
458 ><LI
459 ><P
460 >      Remove the next member from the client_state struct. Only the main
461       thread needs access to all client states so give it its own struct.
462      </P
463 ></LI
464 ><LI
465 ><P
466 >      Garbage-collect request_contains_null_bytes().
467      </P
468 ></LI
469 ><LI
470 ><P
471 >      Ditch redundant code in unload_configfile().
472      </P
473 ></LI
474 ><LI
475 ><P
476 >      Ditch LogGetURLUnderCursor() which doesn't seem to be used anywhere.
477      </P
478 ></LI
479 ><LI
480 ><P
481 >      In write_socket(), remove the write-only variable write_len in
482       an ifdef __OS2__ block. Spotted by cppcheck.
483      </P
484 ></LI
485 ><LI
486 ><P
487 >      In connect_to(), don't declare the variable 'flags' on OS/2 where
488       it isn't used. Spotted by cppcheck.
489      </P
490 ></LI
491 ><LI
492 ><P
493 >      Limit the scope of various variables. Spotted by cppcheck.
494      </P
495 ></LI
496 ><LI
497 ><P
498 >      In add_to_iob(), turn an interestingly looking for loop into a
499       boring while loop.
500      </P
501 ></LI
502 ><LI
503 ><P
504 >      Code cleanup in preparation for external filters.
505      </P
506 ></LI
507 ><LI
508 ><P
509 >      In listen_loop(), mention the socket on which we accepted the
510       connection, not just the source IP address.
511      </P
512 ></LI
513 ><LI
514 ><P
515 >      In write_socket(), also log the socket we're writing to.
516      </P
517 ></LI
518 ><LI
519 ><P
520 >      In log_error(), assert that escaped characters get logged
521       completely or not at all.
522      </P
523 ></LI
524 ><LI
525 ><P
526 >      In log_error(), assert that ival and sval have reasonable values.
527       There's no reason not to abort() if they don't.
528      </P
529 ></LI
530 ><LI
531 ><P
532 >      Remove an incorrect cgi_error_unknown() call in a
533       cannnot-happen-situation in send_crunch_response().
534      </P
535 ></LI
536 ><LI
537 ><P
538 >      Clean up white-space in http_response definition and
539       move the crunch_reason to the beginning.
540      </P
541 ></LI
542 ><LI
543 ><P
544 >      Turn http_response.reason into an enum and rename it
545       to http_response.crunch_reason.
546      </P
547 ></LI
548 ><LI
549 ><P
550 >      Silence a 'gcc (Debian 4.3.2-1.1) 4.3.2' warning on i686 GNU/Linux.
551      </P
552 ></LI
553 ></UL
554 >
555    </P
556 ></LI
557 ><LI
558 ><P
559 >    GNUmakefile improvements:
560     <P
561 ></P
562 ><UL
563 ><LI
564 ><P
565 >      Use $(SSH) instead of ssh, so one only needs to specify a username once.
566      </P
567 ></LI
568 ><LI
569 ><P
570 >      Removed references to the action feedback thingy that hasn't been
571       working for years.
572      </P
573 ></LI
574 ><LI
575 ><P
576 >      Consistently use shell.sourceforge.net instead of shell.sf.net so
577       one doesn't need to check server fingerprints twice.
578      </P
579 ></LI
580 ><LI
581 ><P
582 >      Removed GNUisms in the webserver and webactions targets so they
583       work with standard tar.
584      </P
585 ></LI
586 ></UL
587 >
588    </P
589 ></LI
590 ></UL
591 ></P
592 ><DIV
593 CLASS="SECT2"
594 ><H2
595 CLASS="SECT2"
596 ><A
597 NAME="UPGRADERSNOTE"
598 >3.1. Note to Upgraders</A
599 ></H2
600 ><P
601 > A quick list of things to be aware of before upgrading from earlier 
602  versions of <SPAN
603 CLASS="APPLICATION"
604 >Privoxy</SPAN
605 >:</P
606 ><P
607 > <P
608 ></P
609 ><UL
610 ><LI
611 ><P
612 >   The recommended way to upgrade <SPAN
613 CLASS="APPLICATION"
614 >Privoxy</SPAN
615 > is to backup your old 
616    configuration files, install the new ones, verify that <SPAN
617 CLASS="APPLICATION"
618 >Privoxy</SPAN
619 >
620    is working correctly and finally merge back your changes using
621    <SPAN
622 CLASS="APPLICATION"
623 >diff</SPAN
624 > and maybe <SPAN
625 CLASS="APPLICATION"
626 >patch</SPAN
627 >.
628   </P
629 ><P
630 >   There are a number of new features in each <SPAN
631 CLASS="APPLICATION"
632 >Privoxy</SPAN
633 > release and
634    most of them have to be explicitly enabled in the configuration
635    files. Old configuration files obviously don't do that and due
636    to syntax changes using old configuration files with a new
637    <SPAN
638 CLASS="APPLICATION"
639 >Privoxy</SPAN
640 > isn't always possible anyway.
641   </P
642 ></LI
643 ><LI
644 ><P
645 >  
646     Note that some installers remove earlier versions completely,
647     including configuration files, therefore you should really save
648     any important configuration files!
649   </P
650 ></LI
651 ><LI
652 ><P
653 >  
654    On the other hand, other installers don't overwrite existing configuration 
655    files, thinking you will want to do that yourself.
656   </P
657 ></LI
658 ><LI
659 ><P
660 >  
661    <TT
662 CLASS="FILENAME"
663 >standard.action</TT
664 > has been merged into
665    the <TT
666 CLASS="FILENAME"
667 >default.action</TT
668 > file.
669   </P
670 ></LI
671 ><LI
672 ><P
673 >   In the default configuration only fatal errors are logged now.
674    You can change that in the <A
675 HREF="config.html#DEBUG"
676 >debug section</A
677 >
678    of the configuration file. You may also want to enable more verbose
679    logging until you verified that the new <SPAN
680 CLASS="APPLICATION"
681 >Privoxy</SPAN
682 > version is working
683    as expected.
684   </P
685 ></LI
686 ><LI
687 ><P
688 >     Three other config file settings are now off by default: 
689      <A
690 HREF="config.html#ENABLE-REMOTE-TOGGLE"
691 >enable-remote-toggle</A
692 >,
693      <A
694 HREF="config.html#ENABLE-REMOTE-HTTP-TOGGLE"
695 >enable-remote-http-toggle</A
696 >,
697      and  <A
698 HREF="config.html#ENABLE-EDIT-ACTIONS"
699 >enable-edit-actions</A
700 >. 
701      If you use or want these, you will need to explicitly enable them, and
702      be aware of the security issues involved. 
703     </P
704 ></LI
705 ></UL
706 ></P
707 ></DIV
708 ></DIV
709 ><DIV
710 CLASS="NAVFOOTER"
711 ><HR
712 ALIGN="LEFT"
713 WIDTH="100%"><TABLE
714 SUMMARY="Footer navigation table"
715 WIDTH="100%"
716 BORDER="0"
717 CELLPADDING="0"
718 CELLSPACING="0"
719 ><TR
720 ><TD
721 WIDTH="33%"
722 ALIGN="left"
723 VALIGN="top"
724 ><A
725 HREF="installation.html"
726 ACCESSKEY="P"
727 >Prev</A
728 ></TD
729 ><TD
730 WIDTH="34%"
731 ALIGN="center"
732 VALIGN="top"
733 ><A
734 HREF="index.html"
735 ACCESSKEY="H"
736 >Home</A
737 ></TD
738 ><TD
739 WIDTH="33%"
740 ALIGN="right"
741 VALIGN="top"
742 ><A
743 HREF="quickstart.html"
744 ACCESSKEY="N"
745 >Next</A
746 ></TD
747 ></TR
748 ><TR
749 ><TD
750 WIDTH="33%"
751 ALIGN="left"
752 VALIGN="top"
753 >Installation</TD
754 ><TD
755 WIDTH="34%"
756 ALIGN="center"
757 VALIGN="top"
758 >&nbsp;</TD
759 ><TD
760 WIDTH="33%"
761 ALIGN="right"
762 VALIGN="top"
763 >Quickstart to Using Privoxy</TD
764 ></TR
765 ></TABLE
766 ></DIV
767 ></BODY
768 ></HTML
769 >