For one reason or another, the mighty docbook mess decided that upgradersnote.html...
[privoxy.git] / ChangeLog
index 44f4354..7a9beb0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 --------------------------------------------------------------------
 ChangeLog for Privoxy
 --------------------------------------------------------------------
-*** Since 3.0.10
-
-- A "clear log" view option was added to the mingw32 version
-  to clear out all of the lines in the Privoxy log window.
-  Based on a patch submitted by T Ford.
-- The mingw32 version uses mutex locks now which prevents
-  log message corruption under load. As a side effect,
-  the "no thread-safe PRNG" warning could be removed as well.
+*** Version 3.0.15 Beta ***
+
+- In case of missing server data, no error message is send to the
+  client if the request arrived on a reused connection. The client
+  is then supposed to silently retry the request without bothering
+  the user. This should significantly reduce the frequency of the
+  "No server or forwarder data received" error message many users
+  reported.
+- More reliable detection of prematurely closed client sockets
+  with keep-alive enabled.
+- FEATURE_CONNECTION_KEEP_ALIVE is decoupled from
+  FEATURE_CONNECTION_SHARING and now available on
+  all platforms.
+- Improved handling of POST requests on reused connections.
+  Should fix problems with stalled connections after submitting
+  form data with some browser configurations.
+- Fixed various latency calculation issues.
+- Allows the client to pass NTLM authentication requests to a
+  forwarding proxy. This was already assumed and hinted to work
+  in 3.0.13 beta but actually didn't. Now it's confirmed to work
+  with IE, Firefox and Chrome.
+  Thanks to Francois Botha and Wan-Teh Chang
+- Fixed a calculation problem if receiving the server headers
+  takes more than two reads, that could cause Privoxy to terminate
+  the connection prematurely. Reported by Oliver.
+- Compiles again on platforms such as OpenBSD and systems
+  using earlier glibc version that don't support AI_ADDRCONFIG.
+  Anonymously submitted in #2872591.
+- A bunch of MS VC project files and Suse and Redhat RPM spec
+  files have been removed as they were no longer maintained for
+  quite some time.
+- Overly long action lines are properly rejected with a proper
+  error message. Previously they would be either rejected as
+  invalid or cause a core dump through abort().
+- Already timed-out connections are no longer temporarily remembered.
+  They weren't reused anyway, but wasted a socket slot.
+- len refers to the number of bytes actually read which might
+  differ from the ones received. Adjust log messages accordingly.
+- The optional JavaScript on the CGI page uses encodeURIComponent()
+  instead of escape() which doesn't encode all characters that matter.
+  Anonymously reported in #2832722.
+- Fix gcc45 warnings in decompress_iob().
+- Various log message improvements.
+- Privoxy-Regression-Test supports redirect tests.
+- Privoxy-Log-Parser can gather some connection statistics.
+
+*** Version 3.0.14 Beta ***
+
+- The latency is taken into account when evaluating whether or not to
+  reuse a connection. This should significantly reduce the number of
+  connections problems several users reported.
+- If the server doesn't specify how long the connection stays alive,
+  Privoxy errs on the safe side of caution and assumes it's only a second.
+- The error pages for connection timeouts or missing server data use a
+  Last-Modified date in the past. Retry attempts are detected and Privoxy
+  removes the If-Modified-Since header to prevent the server from responding
+  with status code 304 in which case the client would reuse the error message.
+- Setting keep-alive-timeout to 0 disables keep-alive support. Previously
+  Privoxy would claim to allow persistence but not reuse the connection.
+- Pipelined requests are less likely to be mistaken for the request
+  body of the previous request. Note that Privoxy still has no real
+  pipeline support and will either serialize pipelined requests or
+  drop them in which case the client has to resent them.
+- Fixed a crash on some Windows versions when header randomization
+  is enabled and the date couldn't be parsed.
+- Privoxy's keep-alive timeout for the current connection is reduced
+  to the one specified in the client's Keep-Alive header.
+- For HTTP/1.1 requests, Privoxy implies keep-alive support by not
+  setting any Connection header instead of using 'Connection: keep-alive'.
+- If the socket isn't reusable, Privoxy doesn't temporarily waste
+  a socket slot to remember the connection.
+- If keep-alive support is disabled but compiled in, the client's
+  Keep-Alive header is removed.
+- Fixed a bug on mingw32 where downloading large files failed if
+  keep-alive support was enabled.
+- Fixed a bug that (at least theoretically) could cause log
+  timestamps to be occasionally off by about a second.
+- No Proxy-Connection header if added if there already is one.
+- The configure script respects the $PATH variable when searching
+  for groups and id.
+
+*** Version 3.0.13 Beta ***
+
+- Added IPv6 support. Thanks to Petr Pisar who not only provided
+  the initial patch but also helped a lot with the integration.
+- Added client-side keep-alive support.
+- The connection sharing code is only used if the connection-sharing
+  option is enabled.
+- The max-client-connections option has been added to restrict
+  the number of client connections below a value enforced by
+  the operating system.
+- Fixed a regression reintroduced in 3.0.12 that could cause
+  crashes on mingw32 if header date randomization was enabled.
+- Compressed content with extra fields couldn't be decompressed
+  and would get passed to the client unfiltered. This problem
+  has only be detected through statical analysis with clang as
+  nobody seems to be using extra fields anyway.
+- If the server resets the Connection after sending only the headers
+  Privoxy forwards what it got to the client. Previously Privoxy
+  would deliver an error message instead.
+- Error messages in case of connection timeouts use the right
+  HTTP status code.
+- If spawning a child to handle a request fails, the client
+  gets an error message and Privoxy continues to listen for
+  new requests right away.
+- The error messages in case of server-connection timeouts or
+  prematurely closed server connections are now template-based.
+- If zlib support isn't compiled in, Privoxy no longer tries to
+  filter compressed content unless explicitly asked to do so.
+- In case of connections that are denied based on ACL directives,
+  the memory used for the client IP is no longer leaked.
+- Fixed another small memory leak if the client request times out
+  while waiting for client headers other than the request line.
+- The client socket is kept open until the server socket has
+  been marked as unused. This should increase the chances that
+  the still-open connection will be reused for the client's next
+  request to the same destination. Note that this only matters
+  if connection-sharing is enabled.
+- A TODO list has been added to the source tarballs to give potential
+  volunteers a better idea of what the current goals are. Donations
+  are still welcome too: http://www.privoxy.org/faq/general.html#DONATE
+
+*** Version 3.0.12 ***
+
+- The socket-timeout option now also works on platforms whose
+  select() implementation modifies the timeout structure.
+  Previously the timeout was triggered even if the connection
+  didn't stall. Reported by cyberpatrol.
+- The Connection: keep-alive code properly deals with files
+  larger than 2GB. Previously the connection was closed too
+  early.
+- The content length for files above 2GB is logged correctly.
+- The user-manual directive on the show-status page links to
+  the documentation location specified with the directive,
+  not to the Privoxy website.
+- When running in daemon mode, Privoxy doesn't log anything
+  to the console unless there are errors before the logfile
+  has been opened.
+- The show-status page prints warnings about invalid directives
+  on the same line as the directives themselves.
+- Fixed several justified (but harmless) compiler warnings,
+  mostly on 64 bit platforms.
+- The mingw32 version explicitly requests the default charset
+  to prevent display problems with some fonts available on more
+  recent Windows versions. Patch by Burberry.
+- The mingw32 version uses the Privoxy icon in the alt-tab
+  windows. Patch by Burberry.
+- The timestamp and the thread id is omitted in the "Fatal error"
+  message box on mingw32.
+- Fixed two related mingw32-only buffer overflows. Triggering
+  them required control over the configuration file, therefore
+  this isn't seen as a security issue.
+- In verbose mode, or if the new option --show-skipped-tests
+  is used, Privoxy-Regression-Test logs skipped tests and the
+  skip reason.
+
+*** Version 3.0.11 ***
+       
+- On most platforms, outgoing connections can be kept alive and
+  reused if the server supports it. Whether or not this improves
+  things depends on the connection.
+- When dropping privileges, membership in supplementary groups
+  is given up as well. Not doing that can lead to Privoxy running
+  with more rights than necessary and violates the principle of
+  least privilege. Users of the --user option are advised to update.
+  Thanks to Matthias Drochner for reporting the problem,
+  providing the initial patch and testing the final version.
+- Passing invalid users or groups with the --user option
+  didn't lead to program exit. Regression introduced in 3.0.7.
+- The match all section has been moved from default.action
+  to a new file called match-all.action. As a result the
+  default.action no longer needs to be touched by the user
+  and can be safely overwritten by updates.
+- The standard.action file has been removed. Its content
+  is now part of the default.action file.
+- In some situations the logged content length was slightly too low.
+- Crunched requests are logged with their own log level.
+  If you used "debug 1" in the past, you'll probably want
+  to additionally enable "debug 1024", otherwise only passed
+  requests will be logged. If you only care about crunched
+  requests, simply replace "debug 1" with "debug 1024".
+- The crunch reason has been moved to the beginning of the
+  crunch message. For HTTP URLs, the protocol is logged as well.
+- Log messages are shortened by printing the thread id on its
+  own (as opposed to putting it inside the string "Privoxy()").
+- The config option socket-timeout has been added to control
+  the time Privoxy waits for data to arrive on a socket.
 - Support for remote toggling is controlled by the configure
   option --disable-toggle only. In previous versions it also
   depended on the action editor and thus configuring with the
   --disable-editor option would disable remote toggling support
   as well.
+- Requests with invalid HTTP versions are rejected.
+- The template symbol @date@ can be used to include a date(1)-like
+  time string. Initial patch submitted by Endre Szabo.
+- Responses from shoutcast servers are accepted again.
+  Problem reported and fix suggested by Stefan.
 - The hide-forwarded-for-headers action has been replaced with
   the change-x-forwarded-for{} action which can also be used to
   add X-Forwarded-For headers. The latter functionality already
   existed in Privoxy versions prior to 3.0.7 but has been removed
   as it was often used unintentionally (by not using the
   hide-forwarded-for-headers action).
+- A "clear log" view option was added to the mingw32 version
+  to clear out all of the lines in the Privoxy log window.
+  Based on a patch submitted by T Ford.
+- The mingw32 version uses "critical sections" now, which prevents
+  log message corruption under load. As a side effect, the
+  "no thread-safe PRNG" warning could be removed as well.
+- The mingw32 version's task bar icon is crossed out and
+  the color changed to gray if Privoxy is toggled off.
 
 *** Version 3.0.10 ***