- <li>
- <p>Miscellaneous Privoxy improvements:</p>
-
- <ul>
- <li>
- <p>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.</p>
- </li>
-
- <li>
- <p>If the --user argument user[.group] contains a dot, always
- bail out if no group has been specified. Previously the intended,
- but undocumented (and apparently untested), behaviour was to try
- interpreting the whole argument as user name, but the detection
- was flawed and checked for '0' isntead of '\0', thus merely
- preventing group names beginning with a zero.</p>
- </li>
-
- <li>
- <p>Simplify the signal setup in main()</p>
- </li>
-
- <li>
- <p>Streamline socks5_connect() slightly</p>
- </li>
-
- <li>
- <p>In case of SOCKS5 failures, dump the socks response</p>
- </li>
-
- <li>
- <p>In socks5_connect(), require a complete socks response from
- the server Previously we 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 we can't
- read more than a whole socks response. This is required to
- support Tor's optimistic data extension.</p>
- </li>
-
- <li>
- <p>In chat(), do not bother to generate a client request in case
- of direct CONNECT requests</p>
- </li>
-
- <li>
- <p>Reduce server_last_modified()'s stack size</p>
- </li>
-
- <li>
- <p>Shorten get_http_time() by using strftime()</p>
- </li>
-
- <li>
- <p>Constify the known_http_methods pointers in
- unknown_method()</p>
- </li>
-
- <li>
- <p>Constify the time_formats pointers in parse_header_time()</p>
- </li>
-
- <li>
- <p>Constify the formerly_valid_actions pointers in
- action_used_to_be_valid()</p>
- </li>
-
- <li>
- <p>In html_code_map[], use a numeric character reference instead
- of ' which wasn't standardized before XHTML 1.0</p>
- </li>
-
- <li>
- <p>Introduce a MAN_PAGE variable that defaults to privoxy.1. The
- Debian package uses section 8 for the man page and this should
- simplify the patch.</p>
- </li>
-
- <li>
- <p>Deduplicate the INADDR_NONE definition for Solaris by moving
- it to jbsockets.h</p>
- </li>
-
- <li>
- <p>In block_url(), ditch the obsolete workaround for ancient
- Netscape versions that supposedly couldn't properly deal with
- status code 403.</p>
- </li>
-
- <li>
- <p>Remove a useless NULL pointer check in load_trustfile()</p>
- </li>
-
- <li>
- <p>Remove two useless NULL pointer checks in
- load_one_re_filterfile().</p>
- </li>
-
- <li>
- <p>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.</p>
- </li>
-
- <li>
- <p>Fix various typos. Fixes taken from Debian's 29_typos.dpatch
- by Roland Rosenfeld.</p>
- </li>
-
- <li>
- <p>Add a dok-tidy GNUMakefile target to clean up the messy HTML
- generated by the other dok targets.</p>
- </li>
-
- <li>
- <p>GNUisms in the GNUMakefile have been removed.</p>
- </li>
-
- <li>
- <p>Change the HTTP version in static responses to 1.1</p>
- </li>
-
- <li>
- <p>Synced config.sub and config.guess with upstream
- 2011-11-11/386c7218162c145f5f9e1ff7f558a3fbb66c37c5.</p>
- </li>
-
- <li>
- <p>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.</p>
- </li>
-
- <li>
- <p>Terminate HTML lines in static error messages with \n instead
- of \r\n.</p>
- </li>
-
- <li>
- <p>Simplify cgi_error_unknown() a bit.</p>
- </li>
-
- <li>
- <p>In LogPutString(), don't bother looking at pszText when not
- actually logging anything</p>
- </li>
-
- <li>
- <p>Change ssplit()'s fourth parameter from int to size_t. Fixes a
- clang complaint.</p>
- </li>
-
- <li>
- <p>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.</p>
- </li>
-
- <li>
- <p>In rfc2553_connect_to(), start setting cgi->error_message
- on error</p>
- </li>
-
- <li>
- <p>Change the expected status code returned for http://p.p/die
- depending on whether or not FEATURE_GRACEFUL_TERMINATION is
- available.</p>
- </li>
-
- <li>
- <p>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.</p>
- </li>
-
- <li>
- <p>Add a proper CGI message for cgi_die().</p>
- </li>
-
- <li>
- <p>Fix an invalid free when compiled with
- FEATURE_GRACEFUL_TERMINATION and shut down through
- http://config.privoxy.org/die</p>
- </li>
-
- <li>
- <p>Don't enforce a logical line length limit in
- read_config_line()</p>
- </li>
-
- <li>
- <p>Slightly refactor server_last_modified() to remove useless
- gmtime*() calls</p>
- </li>
-
- <li>
- <p>In get_content_type(), also recognize '.jpeg' as JPEG
- extension</p>
- </li>
-
- <li>
- <p>Add '.png' to the list of recognized file extenstions in
- get_content_type()</p>
- </li>
-
- <li>
- <p>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 necessarly correct as the block may be due to
- tags.</p>
- </li>
-
- <li>
- <p>In get_actions(), fix the "temporary" backwards compatibility
- hack to accept block actions without reason. It also covered
- other actions that should be rejected as invalid. Reported by
- Billy Crook.</p>
- </li>
-
- <li>
- <p>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.</p>
- </li>
-
- <li>
- <p>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.</p>
- </li>
-
- <li>
- <p>The socket timeout is used for SOCKS negotiation as well.</p>
- </li>
-
- <li>
- <p>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.</p>
- </li>
-
- <li>
- <p>Treat all Content-Type header values containing the pattern
- 'script' as a sign of text. Reported by pribog in #3134970.</p>
- </li>
- </ul>
- </li>
-