- - Privoxy can (re)compress buffered content before delivering
- it to the client. Disabled by default as most users wouldn't
- benefit from it.
- - The +fast-redirects{check-decoded-url} action checks URL
- segments separately. If there are other parameters behind
- the redirect URL, this makes it unnecessary to cut them off
- by additionally using a +redirect{} pcrs command.
- Initial patch submitted by Jamie Zawinski in #3429848.
- - When loading action sections, verify that the referenced filters
- exist. Currently missing filters only result in an error message,
- but eventually the severity will be upgraded to fatal.
- - Allow to bind to multiple separate addresses.
- Patch set submitted by Petr Pisar in #3354485.
- - Set socket_error to errno if connecting fails in rfc2553_connect_to()
- Previously rejected direct connections could be incorrectly reported
- as DNS issues if Privoxy was compiled with IPv6 support.
- - Adjust url_code_map[] so spaces are replaced with %20 instead of '+'
- While '+' can be used by client's submitting form data, this is not
- actually what Privoxy is using the lookups for. This is more of a
- cosmetic issue and doesn't fix any known problems.
- - When compiled without FEATURE_FAST_REDIRECTS, do not silently
- ignore +fast-redirect{} directives
- - Added a workaround for GNU libc's strptime() reporting negative
- year values when the parsed year is only specified with two digits.
- On affected systems cookies with such a date would not be turned
- into session cookies by the +session-cookies-only action.
- Reported by Vaeinoe in #3403560
- - Fixed bind failures with certain GNU libc versions if no non-loopback
- IP address has been configured on the system. This is mainly an issue
- if the system is using DHCP and Privoxy is started before the network
- is completely configured.
- Reported by Raphael Marichez in #3349356.
- Additional insight from Petr Pisar.
- - Privoxy log messages now use the ISO 8601 date format %Y-%m-%d.
- It's only slightly longer than the old format, but contains
- the full date including the year and allows sorting by date
- (when grepping in multiple log files) without hassle.
- - In get_last_url(), do not bother trying to decode URLs that do
- not contain at least one '%' sign. It reduces the log noise and
- a number of unnecessary memory allocations.
- - In case of SOCKS5 failures, dump the socks response in the log message.
- - Simplify the signal setup in main()
- - Streamline socks5_connect() slightly
- - In socks5_connect(), require a complete socks response from the server
- Previously Privoxy didn't care how much data the server response
- contained as long as the first two bytes contained the expected
- values. While at it, shrink the buffer size so Privoxy can't read
- more than a whole socks response.
- - In chat(), do not bother to generate a client request in case of
- direct CONNECT requests. It will not be used anyway.
- - Reduce server_last_modified()'s stack size.
- - Shorten get_http_time() by using strftime().
- - Constify the known_http_methods pointers in unknown_method().
- - Constify the time_formats pointers in parse_header_time().
- - Constify the formerly_valid_actions pointers in action_used_to_be_valid().
- - Introduce a GNUMakefile MAN_PAGE variable that defaults to privoxy.1.
- The Debian package uses section 8 for the man page and this
- should simplify the patch.
- - Deduplicate the INADDR_NONE definition for Solaris by moving it to jbsockets.h
- - In block_url(), ditch the obsolete workaround for ancient Netscape versions
- that supposedly couldn't properly deal with status code 403.
- - Remove a useless NULL pointer check in load_trustfile().
- - Remove two useless NULL pointer checks in load_one_re_filterfile().
- - Change url_code_map[] from an array of pointers to an array of arrays
- It removes an unnecessary layer of indirection and on 64bit system reduces
- the size of the binary a bit.
- - Fix various typos. Fixes taken from Debian's 29_typos.dpatch by Roland Rosenfeld.
- - Add a dok-tidy GNUMakefile target to clean up the messy HTML
- generated by the other dok targets.
- - GNUisms in the GNUMakefile have been removed.
- - Change the HTTP version in static responses to 1.1
- - Synced config.sub and config.guess with upstream
- 2011-11-11/386c7218162c145f5f9e1ff7f558a3fbb66c37c5.
- - Add a dedicated function to parse the values of toggles. Reduces duplicated
- code in load_config() and provides better error handling. Invalid or missing
- toggle values are now a fatal error instead of being silently ignored.
- - Terminate HTML lines in static error messages with \n instead of \r\n.
- - Simplify cgi_error_unknown() a bit.
- - In LogPutString(), don't bother looking at pszText when not
- actually logging anything.
- - Change ssplit()'s fourth parameter from int to size_t.
- Fixes a clang complaint.
- - Add a warning that the statistics currently can't be trusted.
- Mention Privoxy-Log-Parser's --statistics option as
- an alternative for the time being.
- - In rfc2553_connect_to(), start setting cgi->error_message on error
- - Change the expected status code returned for http://p.p/die depending
- on whether or not FEATURE_GRACEFUL_TERMINATION is available.
- - In cgi_die(), mark the client connection for closing.
- If the client will fetch the style sheet through another connection
- it gets the main thread out of the accept() state and should thus
- trigger the actual shutdown.
- - Add a proper CGI message for cgi_die().
- - Don't enforce a logical line length limit in read_config_line()
- - Slightly refactor server_last_modified() to remove useless gmtime*() calls
- - In get_content_type(), also recognize '.jpeg' as JPEG extension
- - Add '.png' to the list of recognized file extensions in get_content_type()
- - In block_url(), consistently use the block reason "Request blocked by Privoxy"
- In two places the reason was "Request for blocked URL" which hides the
- fact that the request got blocked by Privoxy and isn't necessarily
- correct as the block may be due to tags.
- - In listen_loop(), reload the configuration files after accepting
- a new connection instead of before.
- Previously the first connection that arrived after a configuration
- change would still be handled with the old configuration.
- - In chat()'s receive-data loop, skip a client socket check if
- the socket will be written to right away anyway. This can
- increase the transfer speed for unfiltered content on fast
- network connections.
- - The socket timeout is used for SOCKS negotiations as well which
- previously couldn't timeout.
- - Don't keep the client connection alive if any configuration file
- changed since the time the connection came in. This is closer to
- Privoxy's behaviour before keep-alive support for client connection
- has been added and also less confusing in general.
- - Treat all Content-Type header values containing the pattern
- 'script' as a sign of text. Reported by pribog in #3134970.
+ - Added support for client-specific tags which allow Privoxy
+ admins to pre-define tags that are set for all requests from
+ clients that previously opted in through the CGI interface.
+ They are useful in multi-user setups where admins may
+ want to allow users to disable certain actions and filters
+ for themselves without affecting others.
+ In single-user setups they are useful to allow more fine-grained
+ toggling. For example to disable request blocking while still
+ crunching cookies, or to disable experimental filters only.
+ This is an experimental feature, the syntax and behaviour may
+ change in future versions.
+ Sponsored by Robert Klemme.
+ - Dynamic filters and taggers now support a $listen-address variable
+ which contains the address the request came in on.
+ For external filters the variable is called $PRIVOXY_LISTEN_ADDRESS.
+ Original patch contributed by pursievro.
+ - Add client-header-tagger 'listen-address'.
+ - Include the listen-address in the log message when logging new requests.
+ Patch contributed by pursievro.
+ - Turn invalid max-client-connections values into fatal errors.
+ - The show-status page now shows whether or not dates before 1970
+ and after 2038 are expected to be handled properly.
+ This is mainly useful for Privoxy-Regression-Test but could
+ also come handy when dealing with time-related support requests.
+ - On Mac OS X the thread id in log messages are more likely to
+ be unique now.
+ - When complaining about missing filters, the filter type is logged
+ as well.
+ - A couple of harmless coverity warnings were silenced
+ (CID #161202, CID #161203, CID #161211).