From 5becc9c20b7d1a6c99e2ab6a57bd2d230f78fece Mon Sep 17 00:00:00 2001 From: Juliusz Chroboczek Date: Tue, 1 Jan 2008 15:30:37 -0800 Subject: [PATCH] Reformat CHANGES. darcs-hash:20080101233037-4cc09-01a2fbd585c19dd6247c6e7de2901a90e7b6f104.gz --- CHANGES | 934 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 461 insertions(+), 473 deletions(-) rewrite CHANGES (93%) diff --git a/CHANGES b/CHANGES dissimilarity index 93% index 93dec9a..bc479d3 100644 --- a/CHANGES +++ b/CHANGES @@ -1,473 +1,461 @@ -Polipo 1.0.4 (unreleased): - - Fixed the handling of tunnels with a parent proxy (thanks to - Richard Šputa). - -6 October 2007: Polipo 1.0.3 - - Changed the default for chunkMemory: it is now 24 MB or - one-quarter of physical memory, whichever is smaller. - Support for logging to syslog (thanks to Nix). - Made atom reference counts 32-bit longs; this should fix - problems that people were seeing when running Polipo with - humongous in-memory caches. - Added Git, Jabber and CVS to default tunnelAllowedPorts. - Fixed a bug that could cause URL matching to fail when using - anchored regular expressions (thanks to phuel). - -26 August 2007: Polipo 1.0.2: - - Fixed a crash that could happen with entities more than 2GB in - size. Such entities are still not supported, but Polipo - should no longer crash. - Minor HTTP compliance fixes, due to testing with Co-Advisor. - Fixed a crash that would happen when a POST request was aborted - by the server. Reported by Tero Pelander. - Worked around a DNS-related bug that I'm unable to track down, - waiting for a proper fix. - -25 June 2007: Polipo 1.0.1: - - Made Polipo slightly more aggressive when speaking to - HTTP/1.0 servers (thanks to Fabian Keil for noticing that). - Fixed a crash that would happen when a client used - Cache-Control: only-if-cached, and the object was not in cache. - (Reported by F. Zappa, A. Patala and V. Ghosal.) - Fixed a descriptor leak when running under Windows. - Made Polipo optionally drop connections after servicing - a number of connections (maxConnectionAge and maxConnectionRequests). - -6 March 2007: Polipo 1.0.0 - - No changes since 0.9.99.2. - -7 February 2007: Polipo 0.9.99.2 - - Fixed a buffer overflow in urlDirname (the 0.9 branch is not - vulnerable) (reported by J. P. Larocque). - Implemented use of IPv6 temporary source addresses (Frank Behrens). - Disabled use of unaligned range requests by default. This is - controlled by the variable allowUnalignedRangeRequests (reported - by Chris Moore). - Fixed descriptor leaks in SOCKS error handling (reported by - Roger Dingledine). - Implemented maxSideBuffering. - -6 February 2007: Polipo 0.9.12 - - Fixed incorrect caching of redirects (reported by Lawrence Lu). - Fixed a possible hang when falling back to gethostbyname - (reported by Chris Moore). - -28 December 2006: Polipo 0.9.99.1 - - Validation improvements and bug fixes. - Don't use cached data when receiving the output from an HTTP/1.0 CGI. - Allowed tunnelling of IMAP and POP traffic by default. - Changed the disk cache expiry and indexing functions to use chunks. - Made the disk cache unreadable by others by default. - Fixed a bug that could cause stale data to be served after - a connection failure (reported by Hondza). - Fixed computation of age and rtt for pipelined requests. - Fixed incorrect cachability of redirects (reported by J.-P. Larocque). - Fixed a bug that would cause uncachable objects to become - cachable after being reloaded from the on-disk cache (reported - by J.-P. Larocque). - Implemented dontTrustVaryETag. - -7 December 2006: Polipo 0.9.11 - - Fixed a crash that could happen when a network interface went down - while a DNS query was in progress (reported by Francesco Zappa). - -20 November 2006: Polipo 0.9.99.0: - - Implemented large buffers for headers larger than a chunk's worth. - Made the HTTP parser lax by default (ignores unknown headers). - Implemented the infrastructure for local POST requests and - implemented a real configuration interface (thanks to Theo Honohan). - Made timeouts user-configurable and enforced an invariant between - timeouts. - Made logging configurable at runtime (thanks to Frank Behrens). - Implemented the infrastructure for asynchronous handling of - forbidden URLs. - Implemented the ability to redirect instead of returning an - error for forbidden URLs. - Implemented support for Squid-style redirectors. - Implemented User-configurable uncacheable URLs, analogous to - forbidden URLs (thanks to Joachim Haga). - Implemented the ability to avoid caching pages with cookies - and redirects. - Implemented maxPipelineTrain, which can be used to moderate - Polipo's eagerness to pipeline. - Unified parentHost and parentPort into parentProxy. - Ported Polipo to native Windows (thanks to Dan Kennedy). - Implemented disableVia. - Implemented SOCKS support. - Made disableVia and cacheIsShared to be true by default. - Increased the default value of serverMaxSlots to 8. - Made the disk cache code quote all characters except for a - small number of ``known safe'' ones. This is an incompatible - change to the on-disk format. - Changed HTTP parser to pass all Pragma headers to the next - hop; this should make some media players work through Polipo. - Changed the connection scheduler to avoid pipelining when - there are idle connections to a given server. - Made Polipo obey parentProxy when tunnelling (proxying https). - Changed the default value of allowedPorts to be slightly more - permissive. - Implemented tweakables for selectively disabling parts of the - configuration interface. Indexing and listing known servers - are now disabled by default. - Hide variables containing passwords. - Fixed a bug that could cause incorrect validation when speaking - to an HTTP/1.0 server. - Fixed a bug that could cause incorrect validation of Vary objects. - Fixed a crash in the redirector code. - Made disableVia the default, and changed the default value of idleTime. - Made polipo delay serving of partial objects until after a - a successful validation. This should fix Mozilla's prefetching. - On 64-bit blatforms, made CHUNK_SIZE default to 8kB. - -2 September 2006: Polipo 0.9.10: - - Fixed a crash when a client closes a connection at just the - wrong time. - Fixed a crash that could happen when a server returned - incorrect headers and closed the connection at just the wrong - time. - Fixed restarting of connections on a server-side read error; - this should avoid the ``connection reset by peer'' problem. - Corrected work-around for DNS servers that export both AAAA - and CNAME. - Fix incorrect error handling when overflowing the buffer when - saving an entity to disk. - IPv6 tweaks for OpenBSD (thanks to Jun-ichiro itojun Hagino). - Fixed incorrect error-handling on failure to parse a date. - Fixed a deadlock when a tunnel is shut down and the buffer is - full. - Fixed an incorrect use of va_start (guaranteed crash on AMD64). - Fixed a possible race condition with a heavily pipelining client. - Fixed a crash due to incorrect handling of write errors in POST. - -23 September 2005: Polipo 0.9.9: - - Fixed a bug that could cause objects to be incorrectly - determined to be dynamic (thanks to Joachim B. Haga). - Fixed a bug that could cause the local web server to expose - files that are not under the local root (thanks to Wessel - Dankers). - Fixed an off-by-one bug when parsing NL-terminated headers. - Made Polipo forget about failures when finishing on the client - side. - Polipo now sends Host headers even when speaking to an upstream - proxy. Some proxies take RFC 2616 literally, and require that - (thanks to Zoltan Ivanfi). - Fixed some bugs in staleness computation, and implemented - server-side max-age directives (oops!) (thanks to Charley Chu). - -24 January 2005: Polipo 0.9.8: - - Backported the lax HTTP parser from the head branch. - Fixed a race condition that could cause a crash if a single - object was being superseded twice at the same time. - Fixed an incorrect test that caused Polipo to pipeline to all - HTTP/1.1 servers, even when they were determined as broken (thanks - to Daniel Koukola). - Implemented maxPipelineTrain. - Tweaked for uclibc (thanks to Detlef Riekenberg). - -27 December 2004: Polipo 0.9.7: - - Fixed a possible crash when tunnelling. - Fixed spurious updates of object sizes when connection is - dropped by client. - Fixed parsing of URLs with explicit port number (thanks to - Frank Behrens). - Fixed a possible crash when exiting POST in error. - Fixed a protocol violation when an empty object is not superseded. - -31 October 2004: Polipo 0.9.6: - Fixed a possible crash in ServeObject. - Fixed two possible crashes when relaxTransparency is not false. - Modified the config file parser to make it possible to have - backslashes in atoms. - Fixed a violated invariant (leading to a crash) when - superseding objects. - Fixed a possible crash in ClientFinish when a pipelined - request carries no object. - Fixed a bug in handling of client-side Expect: 100-continue - (reported by Charley Chu). - Fixed a scheduling bug that caused server-side requests to be - issued in the order opposite to a client-side pipeline (many - thanks to Joachim Haga). - Abort when the config file couldn't be parsed (thanks to - Joachim Haga). - Fixed error handling in POST and PUT requests, which could - cause a crash on an I/O error. - -17 June 2004: Polipo 0.9.5: - Implemented upstream proxy authentication (HTTP Basic only). - Fixed a possible crash when unable to schedule servicing a - request. - Fixed a possible crash when tunnelling (proxying https). - Fixed signedness issues to make allowedClients work on PPC - (from Gergely Nagy). - -10 May 2004: Polipo 0.9.4: - Fixed a bug (introduced in 0.9.3) that could cause a crash - when the download of an object was interrupted and then immediately - restarted. - Fixed a bug that could cause stale non-200 repliles to be - served. - Fixed compilation on FreeBSD 5.2.1 (from Samuel Tardieu). - Fixed definition of *_ROOT in diskcache.c - -6 April 2004: Polipo 0.9.3: - Fix incorrect handling of EPIPE when tunnelling; this could - cause crashes if a peer closed a connection when we're - writing. - Fix a race condition that could cause ``error message lost in - transit'' errors if a request was cancelled during connect. - Check for exitFlag in workToDo: faster reaction to signals. - -28 March 2004: Polipo 0.9.2: - Fixed a bug that could cause crashes when writing out small - objects (thanks to Frank Behrens). - Made buffer allocation in httpParseHeaders dynamic. - Fixed the declaration of pipelineAdditionalRequests. - Fixed a bug that could cause empty directories to be missed - when expiring the disk cache. - Switched the forbidden file to use extended regexps, the - previous usage was non-portable (thanks to Frank Behrens). - -9 March 2004: Polipo 0.9.1: - Fixed a bug that could cause chunked encoding failures when - going from a 1.0 server to a 1.1 client. - Fixed a bug that prevented comments after some config lines - (thanks to Tom Huckstep). - Fixed a possible buffer overflow in dnsDecodeReply. - Fixed portability to systems where rmdir returns EEXIST - instead of ENOTEMPTY. - Fixed error handling on fork failures in fillSpecialObject. - Fixed handling of EINTR in wait in specialRequestHandler. - Fixed a bug that caused objects with no headers to fail. - Fixed a minor memory leak in the config file parser. - Minor build fixes for NetBSD. - Added the 68020 and later to the list of architectures that - support unaligned access. - -18 February 2004: Polipo 0.9: - Reworked the DNS code to parse ids even when a reply's qdcount - is 0. No longer falls back to gethostbyname when DNS server - returns FormErr. - Made the DNS code parse resolv.conf. - -11 Feburary 2004: Polipo 0.8.99.3: - Minor changes to work around Cygwin mis-design. - Fixed printing of n-state variables. - Fixed proxyOffline handling. - Fixed a bug that would cause errors to be reported with the - wrong content-type. - Fixed a bug that would cause ``object vanished'' errors when - using HEAD for revalidation. - Fixed a bug that could cause failed requests due to ``client - reset connection'' errors. - -24 January 2004: Polipo 0.8.99.2: - Cleaned up authentication. - Made authenticated replies cachable in one of the cases allowed - by RFC 2616. - Fixed a bug that could, under some circumstances, cause a - password-protected object to be cached and returned to a - non-authorized client. - Implemented 100-continue, controlled by the variable expectContinue. - Implemented tristate, 4- and 5-state variables. Split - proxyOffline into proxyOffline and relaxTransparency. This is - an incompatible change to the config file format. - Cleaned up the handling of allowed port ranges. New - configuration variable allowedPorts (and new type intlist). - Implemented tunnelling through the CONNECT method (https - proxying). - Will now read a request body on error (avoids a deadlock). - Reworked the PUT/POST code to read the reply eagerly rather - than waiting for the write to finish (avoids writing the full - body on error and avoids the same deadlock as above). - Made server addresses sticky: will now remember which of a - servers addresses worked last time, and use that address first. - -16 january 2004: Polipo 0.8.99.1: - Fixed an expiry bug that caused DNS queries to be repeated on - each request. - Added the variable ``preciseExpiry'' that prevents trusting - the mtime during expiry. - -14 January 2004: Polipo 0.8.99.0: - Implemented IP address-based authentication. - Implemented HTTP ``basic'' authentication. - Implemented variable body offsets for the on-disk cache; this - makes the on-disk cache format incompatible with previous versions. - Made the number of server slots configurable. - Partially rewrote the disk cache code. - Fixed a file descriptor leak in the early error handling code. - Fixed a bug in the base64 encoder; this makes the on-disk cache - format incompatible with previous versions. - Implemented proper reporting for 100-Continue replies - (100-Continue is not implemented yet). - Made the number of server slots configurable at runtime. - -9 January 2004: Polipo 0.8.4: - Log file is now line buffered. - Will reopen the log file on SIGUSR1 and SIGUSR2. - censoredHeaders now defaults to none, and censorReferer to 0. - Fixed a memory allocation bug that could cause a crash. - -21 December 2003: Polipo 0.8.3: - Fixed a potential buffer overflow on C89 systems in snnprintf. - Fixed checking of Via headers. - Added configurable log file. - Added code to run as a daemon. - Made the resolver grok names ending in a ``.''. - Changed Makefile to fit Debian better. - -7 December 2003: Polipo 0.8.2: - Implemented a version of fts for SVR4 systems. - Implemented a version of mktime_gmt that doesn't use setenv. - Fixed code used to determine FQDN. - More unaligned access fixes. - Disabled queryIPv6 when there is no IPv6 support in kernel. - Enabled IPv6 support by default on FreeBSD and NetBSD. - -2 December 2003: Polipo 0.8.1: - - Fix a possible crash when doing a POST on a busy server. - Fix a possible crash when socket(2) fails; implement switching - to a different address when socket(2) fails (e.g. when - accessing a double-stack host from an IPv4-only client). - Fix a problem with servers stuck in the ``probing'' state. - Work around a bug in Konqueror that strips question marks from - URLs. - Fix incorrect error handling when dealing with connection - failures. - Fix a compile problem in dns.c. - Remove dependency on SSL, include MD5 code instead. - Fix signedness of s_maxage. - -23 November 2003: Polipo 0.8: - - IPv6 support, on both the client and server side, including - DNS support and RFC 2732. - Reworked the DNS code. - Made it possible to compile without any particular resolver - and without the on-disk cache. - Fixed a problem with the chunking encoder. - Made the config file parser grok octal and hex values, allowed - colons and tildes in unquoted strings. - Implemented tilde expansion in some config variables. - Made Polipo slightly less eager to honour range requests for - dynamic instances. Marked generated objects as dynamic. These - changes should solve some of the problems with PMM. - Implemented the If-Range header (on both the client and server - side). - Implemented support for range requests smaller than one chunk - (and hence for pmmSize being smaller than CHUNK_SIZE). - Fixed a bug that caused a deadlock (until a server timeout) - when doing a POST/PUT request with no free connection slots. - Fixed a problem when diskCacheRoot didn't end in `/'. - Fixed a refcounting problem that could cause Polipo to crash - on a DNS timeout. - Fixed an alignment problem that could cause crashes on - architectures that don't like unaligned memory accesses - (thanks to Rob Byrnes). - Fixed a bug with the disk cache that caused spurious ``disk - entry changed behind our back'' warnings (and in principle - could cause data corruption, although that's very unlikely). - Made opening connections slightly less aggressive -- Polipo - would sometimes open two connections where only one was needed. - Modified client-side code to notice client shutdowns earlier - and notify the server side straight away. - -7 October 2003: Polipo 0.7 - - Made the Request function a method of objects. - Fixed a bug that could sometimes cause data corruption. - Fixed a bug that could cause sending of incorrect data to - the client on a range request. - Fixed POST and PUT requests. - Fixed a bug that could sometimes cause a POST request to use a - stale connection. - Included code to do poor man's multiplexing. - Will now open multiple connections to non-persistent servers. - Fixed a bug that could lead to idle connections dying without - being noticed. - Fixed probing for pipelining. - Actually use the new time function introduced in 0.5. - Fixed a bug in strcasecmp_n. - ForbiddenFile can now be a directory. - -26 September 2003: Polipo 0.6 - - Fixed precondition handling. - Fixed a bug that could lead to lockups when revalidating an - object. - -27 June 2003: Polipo 0.5 - - Made the presence of a reader or writer explicit on the client - side. - Reworked closing client connections. - Reworked reporting of server-side errors. - Made buffer allocation lazy; idle clients and servers no - longer use up buffers. - Reworked UTC time handling to use timegm(3) when available. - -12 March 2003: Polipo 0.4 - - Implemented expiry of the on-disk cache. - Implemented reliable aborting of connections; Polipo should no - longer deadlock when a server falls into a black hole. - Changed direct reads to be more aggressive by using readv in - three pieces. - Changed serving of chunked data to be more eager about - serving a chunk's end marker. - Implemented better reporting of DNS errors. - Fixed a deadlock with pipelining on the client side. - Removed most of the remaining copies when reading on the - server side. - Fixed a bug that caused some headers to disappear in transit. - Fixed a possible livelock when reading chunked encoding. - Fixed an overflow when pipelining on the server side. - Fixed generation of indexes from the on-disk cache. - Fixed a DNS crash when falling back on gethostbyname. - -1 March 2003: Polipo 0.3 - - Implemented retrying of timed-out DNS requests. - Implemented configuration mechanisms for case-insensitive - atoms, time values and atom lists; censoredHeaders can now be - configured. - No longer censors User-Agent. Blame Beppe and Alain. - Changed the handling of hop-by-hop HTTP headers to deal with - multiple Connection headers. - Made client-side errors and successful revalidation no longer - close the connection. - Fixed a bug that caused the allocation of an extraneous 2MB (!) - at startup. Polipo can run in 100KB once again. - Fixed a refcounting bug and some incorrect frees that could - lead to crashes when recovering from a server-side error. - Fixed a bug with POST/PUT that could trigger a failed assertion. - Made sure that POST/PUT don't get scheduled in multiple pieces. - -17 February 2003: Polipo 0.2 - - Fixed an incorrect assertion that could cause crashes when the - server is fast. - Fixed (hopefully) logic for 304 replies. - Minor tweaks to scheduling that cause some speed increase when the - client is pipelining and the server is fast. - Minor bug fixes and cleanups. - Macro-ified do_log and friends. - -3 February 2003: Polipo 0.1 - - Initial public release. +Polipo 1.0.4 (unreleased): + + * Fixed the handling of tunnels with a parent proxy (thanks to + Richard Šputa). + +6 October 2007: Polipo 1.0.3 + + * Changed the default for chunkMemory: it is now 24 MB or + one-quarter of physical memory, whichever is smaller. + * Support for logging to syslog (thanks to Nix). + * Made atom reference counts 32-bit longs; this should fix + problems that people were seeing when running Polipo with + humongous in-memory caches. + * Added Git, Jabber and CVS to default tunnelAllowedPorts. + * Fixed a bug that could cause URL matching to fail when using + anchored regular expressions (thanks to phuel). + +26 August 2007: Polipo 1.0.2: + + * Fixed a crash that could happen with entities more than 2GB in + size. Such entities are still not supported, but Polipo + should no longer crash. + * Minor HTTP compliance fixes, due to testing with Co-Advisor. + * Fixed a crash that would happen when a POST request was aborted + by the server. Reported by Tero Pelander. + * Worked around a DNS-related bug that I'm unable to track down, + waiting for a proper fix. + +25 June 2007: Polipo 1.0.1: + + * Made Polipo slightly more aggressive when speaking to + HTTP/1.0 servers (thanks to Fabian Keil for noticing that). + * Fixed a crash that would happen when a client used + * Cache-Control: only-if-cached, and the object was not in cache. + (Reported by F. Zappa, A. Patala and V. Ghosal.) + * Fixed a descriptor leak when running under Windows. + * Made Polipo optionally drop connections after servicing + a number of connections (maxConnectionAge and maxConnectionRequests). + +6 March 2007: Polipo 1.0.0 + + * No changes since 0.9.99.2. + +7 February 2007: Polipo 0.9.99.2 + + * Fixed a buffer overflow in urlDirname (the 0.9 branch is not + vulnerable) (reported by J. P. Larocque). + * Implemented use of IPv6 temporary source addresses (Frank Behrens). + * Disabled use of unaligned range requests by default. This is + controlled by the variable allowUnalignedRangeRequests (reported + by Chris Moore). + * Fixed descriptor leaks in SOCKS error handling (reported by + Roger Dingledine). + * Implemented maxSideBuffering. + +6 February 2007: Polipo 0.9.12 + + * Fixed incorrect caching of redirects (reported by Lawrence Lu). + * Fixed a possible hang when falling back to gethostbyname + (reported by Chris Moore). + +28 December 2006: Polipo 0.9.99.1 + + * Validation improvements and bug fixes. + * Don't use cached data when receiving the output from an HTTP/1.0 CGI. + * Allowed tunnelling of IMAP and POP traffic by default. + * Changed the disk cache expiry and indexing functions to use chunks. + * Made the disk cache unreadable by others by default. + * Fixed a bug that could cause stale data to be served after + a connection failure (reported by Hondza). + * Fixed computation of age and rtt for pipelined requests. + * Fixed incorrect cachability of redirects (reported by J.-P. Larocque). + * Fixed a bug that would cause uncachable objects to become + cachable after being reloaded from the on-disk cache (reported + by J.-P. Larocque). + * Implemented dontTrustVaryETag. + +7 December 2006: Polipo 0.9.11 + + * Fixed a crash that could happen when a network interface went down + while a DNS query was in progress (reported by Francesco Zappa). + +20 November 2006: Polipo 0.9.99.0: + + * Implemented large buffers for headers larger than a chunk's worth. + * Made the HTTP parser lax by default (ignores unknown headers). + * Implemented the infrastructure for local POST requests and + implemented a real configuration interface (thanks to Theo Honohan). + * Made timeouts user-configurable and enforced an invariant between + timeouts. + * Made logging configurable at runtime (thanks to Frank Behrens). + * Implemented the infrastructure for asynchronous handling of + forbidden URLs. + * Implemented the ability to redirect instead of returning an + error for forbidden URLs. + * Implemented support for Squid-style redirectors. + * Implemented User-configurable uncacheable URLs, analogous to + forbidden URLs (thanks to Joachim Haga). + * Implemented the ability to avoid caching pages with cookies + and redirects. + * Implemented maxPipelineTrain, which can be used to moderate + * Polipo's eagerness to pipeline. + * Unified parentHost and parentPort into parentProxy. + * Ported Polipo to native Windows (thanks to Dan Kennedy). + * Implemented disableVia. + * Implemented SOCKS support. + * Made disableVia and cacheIsShared to be true by default. + * Increased the default value of serverMaxSlots to 8. + * Made the disk cache code quote all characters except for a + small number of ``known safe'' ones. This is an incompatible + change to the on-disk format. + * Changed HTTP parser to pass all Pragma headers to the next + hop; this should make some media players work through Polipo. + * Changed the connection scheduler to avoid pipelining when + there are idle connections to a given server. + * Made Polipo obey parentProxy when tunnelling (proxying https). + * Changed the default value of allowedPorts to be slightly more + permissive. + * Implemented tweakables for selectively disabling parts of the + configuration interface. Indexing and listing known servers + are now disabled by default. + * Hide variables containing passwords. + * Fixed a bug that could cause incorrect validation when speaking + to an HTTP/1.0 server. + * Fixed a bug that could cause incorrect validation of Vary objects. + * Fixed a crash in the redirector code. + * Made disableVia the default, and changed the default value of idleTime. + * Made polipo delay serving of partial objects until after a + a successful validation. This should fix Mozilla's prefetching. + * On 64-bit platforms, made CHUNK_SIZE default to 8kB. + +2 September 2006: Polipo 0.9.10: + + * Fixed a crash when a client closes a connection at just the + wrong time. + * Fixed a crash that could happen when a server returned incorrect + headers and closed the connection at just the wrong time. + * Fixed restarting of connections on a server-side read error; + this should avoid the ``connection reset by peer'' problem. + * Corrected work-around for DNS servers that export both AAAA and CNAME. + * Fix incorrect error handling when overflowing the buffer when saving + an entity to disk. + * IPv6 tweaks for OpenBSD (thanks to Jun-ichiro itojun Hagino). + * Fixed incorrect error-handling on failure to parse a date. + * Fixed a deadlock when a tunnel is shut down and the buffer is + full. + * Fixed an incorrect use of va_start (guaranteed crash on AMD64). + * Fixed a possible race condition with a heavily pipelining client. + * Fixed a crash due to incorrect handling of write errors in POST. + +23 September 2005: Polipo 0.9.9: + + * Fixed a bug that could cause objects to be incorrectly + determined to be dynamic (thanks to Joachim B. Haga). + * Fixed a bug that could cause the local web server to expose + files that are not under the local root (thanks to Wessel + Dankers). + * Fixed an off-by-one bug when parsing NL-terminated headers. + * Made Polipo forget about failures when finishing on the client side. + * Polipo now sends Host headers even when speaking to an upstream + proxy. Some proxies take RFC 2616 literally, and require that + (thanks to Zoltan Ivanfi). + * Fixed some bugs in staleness computation, and implemented + server-side max-age directives (oops!) (thanks to Charley Chu). + +24 January 2005: Polipo 0.9.8: + + * Backported the lax HTTP parser from the head branch. + * Fixed a race condition that could cause a crash if a single + object was being superseded twice at the same time. + * Fixed an incorrect test that caused Polipo to pipeline to all + HTTP/1.1 servers, even when they were determined as broken (thanks + to Daniel Koukola). + * Implemented maxPipelineTrain. + * Tweaked for uclibc (thanks to Detlef Riekenberg). + +27 December 2004: Polipo 0.9.7: + + * Fixed a possible crash when tunnelling. + * Fixed spurious updates of object sizes when connection is dropped + by the client. + * Fixed parsing of URLs with explicit port number (thanks to + Frank Behrens). + * Fixed a possible crash when exiting POST in error. + * Fixed a protocol violation when an empty object is not superseded. + +31 October 2004: Polipo 0.9.6: + * Fixed a possible crash in ServeObject. + * Fixed two possible crashes when relaxTransparency is not false. + * Modified the config file parser to make it possible to have + backslashes in atoms. + * Fixed a violated invariant (leading to a crash) when superseding + objects. + * Fixed a possible crash in ClientFinish when a pipelined request + carries no object. + * Fixed a bug in handling of client-side Expect: 100-continue + (reported by Charley Chu). + * Fixed a scheduling bug that caused server-side requests to be + issued in the order opposite to a client-side pipeline (many + thanks to Joachim Haga). + * Abort when the config file couldn't be parsed (thanks to + Joachim Haga). + * Fixed error handling in POST and PUT requests, which could + cause a crash on an I/O error. + +17 June 2004: Polipo 0.9.5: + * Implemented upstream proxy authentication (HTTP Basic only). + * Fixed a possible crash when unable to schedule servicing a request. + * Fixed a possible crash when tunnelling (proxying https). + * Fixed signedness issues to make allowedClients work on PPC + (from Gergely Nagy). + +10 May 2004: Polipo 0.9.4: + * Fixed a bug (introduced in 0.9.3) that could cause a crash when + the download of an object was interrupted and then immediately restarted. + * Fixed a bug that could cause stale non-200 replies to be served. + * Fixed compilation on FreeBSD 5.2.1 (from Samuel Tardieu). + * Fixed definition of *_ROOT in diskcache.c + +6 April 2004: Polipo 0.9.3: + * Fix incorrect handling of EPIPE when tunnelling; this could cause + crashes if a peer closed a connection when we're writing. + * Fix a race condition that could cause ``error message lost in transit'' + errors if a request was cancelled during connect. + * Check for exitFlag in workToDo: faster reaction to signals. + +28 March 2004: Polipo 0.9.2: + * Fixed a bug that could cause crashes when writing out small + objects (thanks to Frank Behrens). + * Made buffer allocation in httpParseHeaders dynamic. + * Fixed the declaration of pipelineAdditionalRequests. + * Fixed a bug that could cause empty directories to be missed + when expiring the disk cache. + * Switched the forbidden file to use extended regexps, the + previous usage was non-portable (thanks to Frank Behrens). + +9 March 2004: Polipo 0.9.1: + * Fixed a bug that could cause chunked encoding failures when + going from a 1.0 server to a 1.1 client. + * Fixed a bug that prevented comments after some config lines + (thanks to Tom Huckstep). + * Fixed a possible buffer overflow in dnsDecodeReply. + * Fixed portability to systems where rmdir returns EEXIST + instead of ENOTEMPTY. + * Fixed error handling on fork failures in fillSpecialObject. + * Fixed handling of EINTR in wait in specialRequestHandler. + * Fixed a bug that caused objects with no headers to fail. + * Fixed a minor memory leak in the config file parser. + * Minor build fixes for NetBSD. + * Added the 68020 and later to the list of architectures that + support unaligned access. + +18 February 2004: Polipo 0.9: + * Reworked the DNS code to parse ids even when a reply's qdcount + is 0. No longer falls back to gethostbyname when DNS server + returns FormErr. + * Made the DNS code parse resolv.conf. + +11 Feburary 2004: Polipo 0.8.99.3: + * Minor changes to work around Cygwin mis-design. + * Fixed printing of n-state variables. + * Fixed proxyOffline handling. + * Fixed a bug that would cause errors to be reported with the + wrong content-type. + * Fixed a bug that would cause ``object vanished'' errors when + using HEAD for revalidation. + * Fixed a bug that could cause failed requests due to ``client + reset connection'' errors. + +24 January 2004: Polipo 0.8.99.2: + * Cleaned up authentication. + * Made authenticated replies cachable in one of the cases allowed + by RFC 2616. + * Fixed a bug that could, under some circumstances, cause a + password-protected object to be cached and returned to a + non-authorized client. + * Implemented 100-continue, controlled by the variable expectContinue. + * Implemented tristate, 4- and 5-state variables. Split + proxyOffline into proxyOffline and relaxTransparency. This is + an incompatible change to the config file format. + * Cleaned up the handling of allowed port ranges. New + configuration variable allowedPorts (and new type intlist). + * Implemented tunnelling through the CONNECT method (https proxying). + * Will now read a request body on error (avoids a deadlock). + * Reworked the PUT/POST code to read the reply eagerly rather + than waiting for the write to finish (avoids writing the full + body on error and avoids the same deadlock as above). + * Made server addresses sticky: will now remember which of a + servers addresses worked last time, and use that address first. + +16 january 2004: Polipo 0.8.99.1: + * Fixed an expiry bug that caused DNS queries to be repeated on + each request. + * Added the variable ``preciseExpiry'' that prevents trusting + the mtime during expiry. + +14 January 2004: Polipo 0.8.99.0: + * Implemented IP address-based authentication. + * Implemented HTTP ``basic'' authentication. + * Implemented variable body offsets for the on-disk cache; this + makes the on-disk cache format incompatible with previous versions. + * Made the number of server slots configurable. + * Partially rewrote the disk cache code. + * Fixed a file descriptor leak in the early error handling code. + * Fixed a bug in the base64 encoder; this makes the on-disk cache + format incompatible with previous versions. + * Implemented proper reporting for 100-Continue replies + (100-Continue is not implemented yet). + * Made the number of server slots configurable at runtime. + +9 January 2004: Polipo 0.8.4: + * Log file is now line buffered. + * Will reopen the log file on SIGUSR1 and SIGUSR2. + * censoredHeaders now defaults to none, and censorReferer to 0. + * Fixed a memory allocation bug that could cause a crash. + +21 December 2003: Polipo 0.8.3: + * Fixed a potential buffer overflow on C89 systems in snnprintf. + * Fixed checking of Via headers. + * Added configurable log file. + * Added code to run as a daemon. + * Made the resolver grok names ending in a ``.''. + * Changed Makefile to fit Debian better. + +7 December 2003: Polipo 0.8.2: + * Implemented a version of fts for SVR4 systems. + * Implemented a version of mktime_gmt that doesn't use setenv. + * Fixed code used to determine FQDN. + * More unaligned access fixes. + * Disabled queryIPv6 when there is no IPv6 support in kernel. + * Enabled IPv6 support by default on FreeBSD and NetBSD. + +2 December 2003: Polipo 0.8.1: + + * Fix a possible crash when doing a POST on a busy server. + * Fix a possible crash when socket(2) fails; implement switching + to a different address when socket(2) fails (e.g. when + accessing a double-stack host from an IPv4-only client). + * Fix a problem with servers stuck in the ``probing'' state. + * Work around a bug in Konqueror that strips question marks from + URLs. + * Fix incorrect error handling when dealing with connection + failures. + * Fix a compile problem in dns.c. + * Remove dependency on SSL, include MD5 code instead. + * Fix signedness of s_maxage. + +23 November 2003: Polipo 0.8: + + * IPv6 support, on both the client and server side, including + * DNS support and RFC 2732. + * Reworked the DNS code. + * Made it possible to compile without any particular resolver + and without the on-disk cache. + * Fixed a problem with the chunking encoder. + * Made the config file parser grok octal and hex values, allowed + colons and tildes in unquoted strings. + * Implemented tilde expansion in some config variables. + * Made Polipo slightly less eager to honour range requests for + dynamic instances. Marked generated objects as dynamic. These + changes should solve some of the problems with PMM. + * Implemented the If-Range header (on both the client and server side). + * Implemented support for range requests smaller than one chunk + (and hence for pmmSize being smaller than CHUNK_SIZE). + * Fixed a bug that caused a deadlock (until a server timeout) + when doing a POST/PUT request with no free connection slots. + * Fixed a problem when diskCacheRoot didn't end in `/'. + * Fixed a refcounting problem that could cause Polipo to crash + on a DNS timeout. + * Fixed an alignment problem that could cause crashes on + architectures that don't like unaligned memory accesses + (thanks to Rob Byrnes). + * Fixed a bug with the disk cache that caused spurious ``disk + entry changed behind our back'' warnings (and in principle + could cause data corruption, although that's very unlikely). + * Made opening connections slightly less aggressive -- Polipo + would sometimes open two connections where only one was needed. + * Modified client-side code to notice client shutdowns earlier + and notify the server side straight away. + +7 October 2003: Polipo 0.7 + + * Made the Request function a method of objects. + * Fixed a bug that could sometimes cause data corruption. + * Fixed a bug that could cause sending of incorrect data to + the client on a range request. + * Fixed POST and PUT requests. + * Fixed a bug that could sometimes cause a POST request to use a + stale connection. + * Included code to do poor man's multiplexing. + * Will now open multiple connections to non-persistent servers. + * Fixed a bug that could lead to idle connections dying without + being noticed. + * Fixed probing for pipelining. + * Actually use the new time function introduced in 0.5. + * Fixed a bug in strcasecmp_n. + * forbiddenFile can now be a directory. + +26 September 2003: Polipo 0.6 + + * Fixed precondition handling. + * Fixed a bug that could lead to lockups when revalidating an object. + +27 June 2003: Polipo 0.5 + + * Made the presence of a reader or writer explicit on the client side. + * Reworked closing client connections. + * Reworked reporting of server-side errors. + * Made buffer allocation lazy; idle clients and servers no longer + use up buffers. + * Reworked UTC time handling to use timegm(3) when available. + +12 March 2003: Polipo 0.4 + + * Implemented expiry of the on-disk cache. + * Implemented reliable aborting of connections; Polipo should no + * longer deadlock when a server falls into a black hole. + * Changed direct reads to be more aggressive by using readv in + three pieces. + * Changed serving of chunked data to be more eager about + serving a chunk's end marker. + * Implemented better reporting of DNS errors. + * Fixed a deadlock with pipelining on the client side. + * Removed most of the remaining copies when reading on the + * server side. + * Fixed a bug that caused some headers to disappear in transit. + * Fixed a possible livelock when reading chunked encoding. + * Fixed an overflow when pipelining on the server side. + * Fixed generation of indexes from the on-disk cache. + * Fixed a DNS crash when falling back on gethostbyname. + +1 March 2003: Polipo 0.3 + + * Implemented retrying of timed-out DNS requests. + * Implemented configuration mechanisms for case-insensitive atoms, + time values and atom lists; censoredHeaders can now be configured. + * No longer censors User-Agent. Blame Beppe and Alain. + * Changed the handling of hop-by-hop HTTP headers to deal with multiple + Connection headers. + * Made client-side errors and successful revalidation no longer + close the connection. + * Fixed a bug that caused the allocation of an extraneous 2MB (!) + at startup. Polipo can run in 100KB once again. + * Fixed a refcounting bug and some incorrect frees that could + lead to crashes when recovering from a server-side error. + * Fixed a bug with POST/PUT that could trigger a failed assertion. + * Made sure that POST/PUT don't get scheduled in multiple pieces. + +17 February 2003: Polipo 0.2 + + * Fixed an incorrect assertion that could cause crashes when the + server is fast. + * Fixed (hopefully) logic for 304 replies. + * Minor tweaks to scheduling that cause some speed increase when the + client is pipelining and the server is fast. + * Minor bug fixes and cleanups. + * Macro-ified do_log and friends. + +3 February 2003: Polipo 0.1 + + * Initial public release. -- 2.11.4.GIT