CHANGES 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563
  1. Polipo 1.1.2 (unreleased):
  2. * Implemented support for SOCKS5 authenticatin (thanks to Amir Hossein
  3. and Heinrich Hartmann).
  4. * Implement support for the OPTIONS method (thanks to Jan Kraetzschmar).
  5. * Implemented support for binding the server side to a specific address
  6. (thanks to Sashka Nochkin).
  7. * Add configuration variable dnsNameServerPort (thanks to Julio
  8. Sangrador-Paton).
  9. * Fix a bug that could prevent the on-disk cache from being written out.
  10. Thanks to David Bonnes.
  11. * Allow POST with no Content-Length. Thanks to Jamie Jones.
  12. * Windows build fixes.
  13. * Added support for musl, removed support for Linux libc5.
  14. * Dropped support for very old OpenBSD versions.
  15. * Fixed the syntax of the generated Warning headers.
  16. 14 May 2014: Polipo 1.1.1:
  17. * Fix a typo that would cause a crash when connecting to a SOCKS
  18. server identified by a DNS CNAME. Thanks to soflare.
  19. * Fix a typo that could cause an infinite loop when tunnelling.
  20. Thanks to xnoreq for the extensive debugging session.
  21. * Fix incorrect error handling that would cause a crash when sending
  22. PUT or POST to the local server.
  23. * Various improvements to the Windows port. Thanks to xnoreq.
  24. 14 April 2014: Polipo 1.1.0:
  25. * Proper va_list handling for AMD64 and other RISC-like architectures
  26. (Juliusz Chroboczek and Aleksandar Kuktin).
  27. * Implemented work-around for broken Content-Range headers.
  28. * Use 1024 instead of 32 as the length of the listen queue.
  29. * Implemented the ability to control the permissions set on the log file.
  30. * Implemented the ability to scrub private information from logs.
  31. * Fixed a bug that could cause incorrect logging to syslog (thanks
  32. to Sami Farin).
  33. * Tweaked the portable version of mktime_gmt. This will hopefully
  34. fix the time issues on Windows. Thanks to MaxWell and Greg.
  35. * Changed chunk allocator to use larger arenas on 64-bit arches.
  36. * Fixed a bug that could prevent saving objects on disk. Thanks to
  37. Ming Fu.
  38. * Fixed a bug that could prevent parsing large headers. Thanks to
  39. Ming Fu.
  40. * Fixed an issue that could cause crash messages to go into the disk
  41. cache.
  42. * Fixed a bug that could cause the default chunk memory to be incorrect
  43. on FreeBSD machines. Thanks to Frank Behrens.
  44. * Fixed a number of bugs in the validation of Range requests. Thanks to
  45. Ken Brazier.
  46. * Inhibited range requests for non-200 instances, as this breaks some
  47. client software. Thanks to Ken Brazier.
  48. * Fix a integer overflow in processing client requests.
  49. * Implement authentication on tunnelled connections. Thanks to
  50. Stephen Dolan.
  51. * Implement ability to include Cache-Control: no-transform in all
  52. requests. Thanks to Nick Osborn.
  53. * Fix a bug in the DNS code that would cause us to ignore CNAMES
  54. after a DNS timeout.
  55. * Fixed a crash that occurs when a server sends a malformed
  56. Cache-Control: header (CVE-2009-3305). Thanks to Stefan Fritsch.
  57. * Removed support for read-only caches. Nobody ever used it.
  58. * Changed the default value of diskCacheWriteoutOnClose to 64kB.
  59. * Cleaned up naming of Windows support functions. Thanks to Honglei Jiang.
  60. * Added support for forbidden tunnels (thanks to Richard Zidlicky).
  61. * Fixed a bug that prevented parsing of extremely long literal IPv6
  62. addresses (thanks to Jan Braun).
  63. * Added support for DOS-style absolute pathnames. Thanks to Gisle Vanem.
  64. * Fixed a bug that could cause infinite revalidation loops. Thanks to
  65. David Rothlisberger.
  66. * Fixed a bug that could provide incorrect caching information to clients.
  67. Thanks to William Manley.
  68. * Support MSVC 2010. Thanks to Greg Hazel.
  69. * Work-around buggy clients that send HTTP:// in uppercase. Thanks
  70. to David Rothlisberger.
  71. * Save Cache-Control values to the disk cache. Thanks to Ruben Alleres.
  72. * Allow ~ in logFile. Thanks to P.J. Hades.
  73. * Fixed a bug that could cause infinite revalidation loops with servers
  74. that perform sloppy packetisation (IIS, I'm looking at you).
  75. * Fail expectations on the local interface. This might or might not be
  76. what CVE-2011-3596 is about, difficult to say since nobody is speaking
  77. to me.
  78. 31 January 2010: Polipo 1.0.4.1:
  79. Cherry-picked fixes from 1.0.5. Thanks to Julien Cristau.
  80. * Fixed an integer overflow that may lead to a crash
  81. (http://secunia.com/advisories/37607/). Discovered by Jeremy Brown.
  82. (CVE-2009-4413)
  83. * Fixed a crash that occurs when a server sends a malformed
  84. Cache-Control: header (CVE-2009-3305). Patch from Stefan Fritsch.
  85. * Prevent an infinite loop when a bodyless 204 or 1xx response is encountered
  86. * Don't crash when we get an error while waiting for 100 continue status.
  87. 8 January 2008: Polipo 1.0.4:
  88. * Fixed the handling of tunnels with a parent proxy (thanks to
  89. Richard Šputa).
  90. * Fixed a bug that could cause connections to be shut down when
  91. a server used the old (RFC 2068) semantics of ``100 Continue''
  92. (thanks to Thomas Wiesel).
  93. * Fixed a crash when a request URL was larger than 10 kB (thanks to
  94. Fabian Keil).
  95. * Fixed a possible failure to read client requests larger than one
  96. chunk.
  97. 6 October 2007: Polipo 1.0.3
  98. * Changed the default for chunkMemory: it is now 24 MB or
  99. one-quarter of physical memory, whichever is smaller.
  100. * Support for logging to syslog (thanks to Nix).
  101. * Made atom reference counts 32-bit longs; this should fix
  102. problems that people were seeing when running Polipo with
  103. humongous in-memory caches.
  104. * Added Git, Jabber and CVS to default tunnelAllowedPorts.
  105. * Fixed a bug that could cause URL matching to fail when using
  106. anchored regular expressions (thanks to phuel).
  107. 26 August 2007: Polipo 1.0.2:
  108. * Fixed a crash that could happen with entities more than 2GB in
  109. size. Such entities are still not supported, but Polipo
  110. should no longer crash.
  111. * Minor HTTP compliance fixes, due to testing with Co-Advisor.
  112. * Fixed a crash that would happen when a POST request was aborted
  113. by the server. Reported by Tero Pelander.
  114. * Worked around a DNS-related bug that I'm unable to track down,
  115. waiting for a proper fix.
  116. 25 June 2007: Polipo 1.0.1:
  117. * Made Polipo slightly more aggressive when speaking to
  118. HTTP/1.0 servers (thanks to Fabian Keil for noticing that).
  119. * Fixed a crash that would happen when a client used
  120. Cache-Control: only-if-cached, and the object was not in cache.
  121. (Reported by F. Zappa, A. Patala and V. Ghosal.)
  122. * Fixed a descriptor leak when running under Windows.
  123. * Made Polipo optionally drop connections after servicing
  124. a number of connections (maxConnectionAge and maxConnectionRequests).
  125. 6 March 2007: Polipo 1.0.0
  126. * No changes since 0.9.99.2.
  127. 7 February 2007: Polipo 0.9.99.2
  128. * Fixed a buffer overflow in urlDirname (the 0.9 branch is not
  129. vulnerable) (reported by J. P. Larocque).
  130. * Implemented use of IPv6 temporary source addresses (Frank Behrens).
  131. * Disabled use of unaligned range requests by default. This is
  132. controlled by the variable allowUnalignedRangeRequests (reported
  133. by Chris Moore).
  134. * Fixed descriptor leaks in SOCKS error handling (reported by
  135. Roger Dingledine).
  136. * Implemented maxSideBuffering.
  137. 6 February 2007: Polipo 0.9.12
  138. * Fixed incorrect caching of redirects (reported by Lawrence Lu).
  139. * Fixed a possible hang when falling back to gethostbyname
  140. (reported by Chris Moore).
  141. 28 December 2006: Polipo 0.9.99.1
  142. * Validation improvements and bug fixes.
  143. * Don't use cached data when receiving the output from an HTTP/1.0 CGI.
  144. * Allowed tunnelling of IMAP and POP traffic by default.
  145. * Changed the disk cache expiry and indexing functions to use chunks.
  146. * Made the disk cache unreadable by others by default.
  147. * Fixed a bug that could cause stale data to be served after
  148. a connection failure (reported by Hondza).
  149. * Fixed computation of age and rtt for pipelined requests.
  150. * Fixed incorrect cachability of redirects (reported by J.-P. Larocque).
  151. * Fixed a bug that would cause uncachable objects to become
  152. cachable after being reloaded from the on-disk cache (reported
  153. by J.-P. Larocque).
  154. * Implemented dontTrustVaryETag.
  155. 7 December 2006: Polipo 0.9.11
  156. * Fixed a crash that could happen when a network interface went down
  157. while a DNS query was in progress (reported by Francesco Zappa).
  158. 20 November 2006: Polipo 0.9.99.0:
  159. * Implemented large buffers for headers larger than a chunk's worth.
  160. * Made the HTTP parser lax by default (ignores unknown headers).
  161. * Implemented the infrastructure for local POST requests and
  162. implemented a real configuration interface (thanks to Theo Honohan).
  163. * Made timeouts user-configurable and enforced an invariant between
  164. timeouts.
  165. * Made logging configurable at runtime (thanks to Frank Behrens).
  166. * Implemented the infrastructure for asynchronous handling of
  167. forbidden URLs.
  168. * Implemented the ability to redirect instead of returning an
  169. error for forbidden URLs.
  170. * Implemented support for Squid-style redirectors.
  171. * Implemented User-configurable uncacheable URLs, analogous to
  172. forbidden URLs (thanks to Joachim Haga).
  173. * Implemented the ability to avoid caching pages with cookies
  174. and redirects.
  175. * Implemented maxPipelineTrain, which can be used to moderate
  176. * Polipo's eagerness to pipeline.
  177. * Unified parentHost and parentPort into parentProxy.
  178. * Ported Polipo to native Windows (thanks to Dan Kennedy).
  179. * Implemented disableVia.
  180. * Implemented SOCKS support.
  181. * Made disableVia and cacheIsShared to be true by default.
  182. * Increased the default value of serverMaxSlots to 8.
  183. * Made the disk cache code quote all characters except for a
  184. small number of ``known safe'' ones. This is an incompatible
  185. change to the on-disk format.
  186. * Changed HTTP parser to pass all Pragma headers to the next
  187. hop; this should make some media players work through Polipo.
  188. * Changed the connection scheduler to avoid pipelining when
  189. there are idle connections to a given server.
  190. * Made Polipo obey parentProxy when tunnelling (proxying https).
  191. * Changed the default value of allowedPorts to be slightly more
  192. permissive.
  193. * Implemented tweakables for selectively disabling parts of the
  194. configuration interface. Indexing and listing known servers
  195. are now disabled by default.
  196. * Hide variables containing passwords.
  197. * Fixed a bug that could cause incorrect validation when speaking
  198. to an HTTP/1.0 server.
  199. * Fixed a bug that could cause incorrect validation of Vary objects.
  200. * Fixed a crash in the redirector code.
  201. * Made disableVia the default, and changed the default value of idleTime.
  202. * Made polipo delay serving of partial objects until after a
  203. a successful validation. This should fix Mozilla's prefetching.
  204. * On 64-bit platforms, made CHUNK_SIZE default to 8kB.
  205. 2 September 2006: Polipo 0.9.10:
  206. * Fixed a crash when a client closes a connection at just the
  207. wrong time.
  208. * Fixed a crash that could happen when a server returned incorrect
  209. headers and closed the connection at just the wrong time.
  210. * Fixed restarting of connections on a server-side read error;
  211. this should avoid the ``connection reset by peer'' problem.
  212. * Corrected work-around for DNS servers that export both AAAA and CNAME.
  213. * Fix incorrect error handling when overflowing the buffer when saving
  214. an entity to disk.
  215. * IPv6 tweaks for OpenBSD (thanks to Jun-ichiro itojun Hagino).
  216. * Fixed incorrect error-handling on failure to parse a date.
  217. * Fixed a deadlock when a tunnel is shut down and the buffer is
  218. full.
  219. * Fixed an incorrect use of va_start (guaranteed crash on AMD64).
  220. * Fixed a possible race condition with a heavily pipelining client.
  221. * Fixed a crash due to incorrect handling of write errors in POST.
  222. 23 September 2005: Polipo 0.9.9:
  223. * Fixed a bug that could cause objects to be incorrectly
  224. determined to be dynamic (thanks to Joachim B. Haga).
  225. * Fixed a bug that could cause the local web server to expose
  226. files that are not under the local root (thanks to Wessel
  227. Dankers).
  228. * Fixed an off-by-one bug when parsing NL-terminated headers.
  229. * Made Polipo forget about failures when finishing on the client side.
  230. * Polipo now sends Host headers even when speaking to an upstream
  231. proxy. Some proxies take RFC 2616 literally, and require that
  232. (thanks to Zoltan Ivanfi).
  233. * Fixed some bugs in staleness computation, and implemented
  234. server-side max-age directives (oops!) (thanks to Charley Chu).
  235. 24 January 2005: Polipo 0.9.8:
  236. * Backported the lax HTTP parser from the head branch.
  237. * Fixed a race condition that could cause a crash if a single
  238. object was being superseded twice at the same time.
  239. * Fixed an incorrect test that caused Polipo to pipeline to all
  240. HTTP/1.1 servers, even when they were determined as broken (thanks
  241. to Daniel Koukola).
  242. * Implemented maxPipelineTrain.
  243. * Tweaked for uclibc (thanks to Detlef Riekenberg).
  244. 27 December 2004: Polipo 0.9.7:
  245. * Fixed a possible crash when tunnelling.
  246. * Fixed spurious updates of object sizes when connection is dropped
  247. by the client.
  248. * Fixed parsing of URLs with explicit port number (thanks to
  249. Frank Behrens).
  250. * Fixed a possible crash when exiting POST in error.
  251. * Fixed a protocol violation when an empty object is not superseded.
  252. 31 October 2004: Polipo 0.9.6:
  253. * Fixed a possible crash in ServeObject.
  254. * Fixed two possible crashes when relaxTransparency is not false.
  255. * Modified the config file parser to make it possible to have
  256. backslashes in atoms.
  257. * Fixed a violated invariant (leading to a crash) when superseding
  258. objects.
  259. * Fixed a possible crash in ClientFinish when a pipelined request
  260. carries no object.
  261. * Fixed a bug in handling of client-side Expect: 100-continue
  262. (reported by Charley Chu).
  263. * Fixed a scheduling bug that caused server-side requests to be
  264. issued in the order opposite to a client-side pipeline (many
  265. thanks to Joachim Haga).
  266. * Abort when the config file couldn't be parsed (thanks to
  267. Joachim Haga).
  268. * Fixed error handling in POST and PUT requests, which could
  269. cause a crash on an I/O error.
  270. 17 June 2004: Polipo 0.9.5:
  271. * Implemented upstream proxy authentication (HTTP Basic only).
  272. * Fixed a possible crash when unable to schedule servicing a request.
  273. * Fixed a possible crash when tunnelling (proxying https).
  274. * Fixed signedness issues to make allowedClients work on PPC
  275. (from Gergely Nagy).
  276. 10 May 2004: Polipo 0.9.4:
  277. * Fixed a bug (introduced in 0.9.3) that could cause a crash when
  278. the download of an object was interrupted and then immediately restarted.
  279. * Fixed a bug that could cause stale non-200 replies to be served.
  280. * Fixed compilation on FreeBSD 5.2.1 (from Samuel Tardieu).
  281. * Fixed definition of *_ROOT in diskcache.c
  282. 6 April 2004: Polipo 0.9.3:
  283. * Fix incorrect handling of EPIPE when tunnelling; this could cause
  284. crashes if a peer closed a connection when we're writing.
  285. * Fix a race condition that could cause ``error message lost in transit''
  286. errors if a request was cancelled during connect.
  287. * Check for exitFlag in workToDo: faster reaction to signals.
  288. 28 March 2004: Polipo 0.9.2:
  289. * Fixed a bug that could cause crashes when writing out small
  290. objects (thanks to Frank Behrens).
  291. * Made buffer allocation in httpParseHeaders dynamic.
  292. * Fixed the declaration of pipelineAdditionalRequests.
  293. * Fixed a bug that could cause empty directories to be missed
  294. when expiring the disk cache.
  295. * Switched the forbidden file to use extended regexps, the
  296. previous usage was non-portable (thanks to Frank Behrens).
  297. 9 March 2004: Polipo 0.9.1:
  298. * Fixed a bug that could cause chunked encoding failures when
  299. going from a 1.0 server to a 1.1 client.
  300. * Fixed a bug that prevented comments after some config lines
  301. (thanks to Tom Huckstep).
  302. * Fixed a possible buffer overflow in dnsDecodeReply.
  303. * Fixed portability to systems where rmdir returns EEXIST
  304. instead of ENOTEMPTY.
  305. * Fixed error handling on fork failures in fillSpecialObject.
  306. * Fixed handling of EINTR in wait in specialRequestHandler.
  307. * Fixed a bug that caused objects with no headers to fail.
  308. * Fixed a minor memory leak in the config file parser.
  309. * Minor build fixes for NetBSD.
  310. * Added the 68020 and later to the list of architectures that
  311. support unaligned access.
  312. 18 February 2004: Polipo 0.9:
  313. * Reworked the DNS code to parse ids even when a reply's qdcount
  314. is 0. No longer falls back to gethostbyname when DNS server
  315. returns FormErr.
  316. * Made the DNS code parse resolv.conf.
  317. 11 Feburary 2004: Polipo 0.8.99.3:
  318. * Minor changes to work around Cygwin mis-design.
  319. * Fixed printing of n-state variables.
  320. * Fixed proxyOffline handling.
  321. * Fixed a bug that would cause errors to be reported with the
  322. wrong content-type.
  323. * Fixed a bug that would cause ``object vanished'' errors when
  324. using HEAD for revalidation.
  325. * Fixed a bug that could cause failed requests due to ``client
  326. reset connection'' errors.
  327. 24 January 2004: Polipo 0.8.99.2:
  328. * Cleaned up authentication.
  329. * Made authenticated replies cachable in one of the cases allowed
  330. by RFC 2616.
  331. * Fixed a bug that could, under some circumstances, cause a
  332. password-protected object to be cached and returned to a
  333. non-authorized client.
  334. * Implemented 100-continue, controlled by the variable expectContinue.
  335. * Implemented tristate, 4- and 5-state variables. Split
  336. proxyOffline into proxyOffline and relaxTransparency. This is
  337. an incompatible change to the config file format.
  338. * Cleaned up the handling of allowed port ranges. New
  339. configuration variable allowedPorts (and new type intlist).
  340. * Implemented tunnelling through the CONNECT method (https proxying).
  341. * Will now read a request body on error (avoids a deadlock).
  342. * Reworked the PUT/POST code to read the reply eagerly rather
  343. than waiting for the write to finish (avoids writing the full
  344. body on error and avoids the same deadlock as above).
  345. * Made server addresses sticky: will now remember which of a
  346. servers addresses worked last time, and use that address first.
  347. 16 january 2004: Polipo 0.8.99.1:
  348. * Fixed an expiry bug that caused DNS queries to be repeated on
  349. each request.
  350. * Added the variable ``preciseExpiry'' that prevents trusting
  351. the mtime during expiry.
  352. 14 January 2004: Polipo 0.8.99.0:
  353. * Implemented IP address-based authentication.
  354. * Implemented HTTP ``basic'' authentication.
  355. * Implemented variable body offsets for the on-disk cache; this
  356. makes the on-disk cache format incompatible with previous versions.
  357. * Made the number of server slots configurable.
  358. * Partially rewrote the disk cache code.
  359. * Fixed a file descriptor leak in the early error handling code.
  360. * Fixed a bug in the base64 encoder; this makes the on-disk cache
  361. format incompatible with previous versions.
  362. * Implemented proper reporting for 100-Continue replies
  363. (100-Continue is not implemented yet).
  364. * Made the number of server slots configurable at runtime.
  365. 9 January 2004: Polipo 0.8.4:
  366. * Log file is now line buffered.
  367. * Will reopen the log file on SIGUSR1 and SIGUSR2.
  368. * censoredHeaders now defaults to none, and censorReferer to 0.
  369. * Fixed a memory allocation bug that could cause a crash.
  370. 21 December 2003: Polipo 0.8.3:
  371. * Fixed a potential buffer overflow on C89 systems in snnprintf.
  372. * Fixed checking of Via headers.
  373. * Added configurable log file.
  374. * Added code to run as a daemon.
  375. * Made the resolver grok names ending in a ``.''.
  376. * Changed Makefile to fit Debian better.
  377. 7 December 2003: Polipo 0.8.2:
  378. * Implemented a version of fts for SVR4 systems.
  379. * Implemented a version of mktime_gmt that doesn't use setenv.
  380. * Fixed code used to determine FQDN.
  381. * More unaligned access fixes.
  382. * Disabled queryIPv6 when there is no IPv6 support in kernel.
  383. * Enabled IPv6 support by default on FreeBSD and NetBSD.
  384. 2 December 2003: Polipo 0.8.1:
  385. * Fix a possible crash when doing a POST on a busy server.
  386. * Fix a possible crash when socket(2) fails; implement switching
  387. to a different address when socket(2) fails (e.g. when
  388. accessing a double-stack host from an IPv4-only client).
  389. * Fix a problem with servers stuck in the ``probing'' state.
  390. * Work around a bug in Konqueror that strips question marks from
  391. URLs.
  392. * Fix incorrect error handling when dealing with connection
  393. failures.
  394. * Fix a compile problem in dns.c.
  395. * Remove dependency on SSL, include MD5 code instead.
  396. * Fix signedness of s_maxage.
  397. 23 November 2003: Polipo 0.8:
  398. * IPv6 support, on both the client and server side, including
  399. DNS support and RFC 2732.
  400. * Reworked the DNS code.
  401. * Made it possible to compile without any particular resolver
  402. and without the on-disk cache.
  403. * Fixed a problem with the chunking encoder.
  404. * Made the config file parser grok octal and hex values, allowed
  405. colons and tildes in unquoted strings.
  406. * Implemented tilde expansion in some config variables.
  407. * Made Polipo slightly less eager to honour range requests for
  408. dynamic instances. Marked generated objects as dynamic. These
  409. changes should solve some of the problems with PMM.
  410. * Implemented the If-Range header (on both the client and server side).
  411. * Implemented support for range requests smaller than one chunk
  412. (and hence for pmmSize being smaller than CHUNK_SIZE).
  413. * Fixed a bug that caused a deadlock (until a server timeout)
  414. when doing a POST/PUT request with no free connection slots.
  415. * Fixed a problem when diskCacheRoot didn't end in `/'.
  416. * Fixed a refcounting problem that could cause Polipo to crash
  417. on a DNS timeout.
  418. * Fixed an alignment problem that could cause crashes on
  419. architectures that don't like unaligned memory accesses
  420. (thanks to Rob Byrnes).
  421. * Fixed a bug with the disk cache that caused spurious ``disk
  422. entry changed behind our back'' warnings (and in principle
  423. could cause data corruption, although that's very unlikely).
  424. * Made opening connections slightly less aggressive -- Polipo
  425. would sometimes open two connections where only one was needed.
  426. * Modified client-side code to notice client shutdowns earlier
  427. and notify the server side straight away.
  428. 7 October 2003: Polipo 0.7
  429. * Made the Request function a method of objects.
  430. * Fixed a bug that could sometimes cause data corruption.
  431. * Fixed a bug that could cause sending of incorrect data to
  432. the client on a range request.
  433. * Fixed POST and PUT requests.
  434. * Fixed a bug that could sometimes cause a POST request to use a
  435. stale connection.
  436. * Included code to do poor man's multiplexing.
  437. * Will now open multiple connections to non-persistent servers.
  438. * Fixed a bug that could lead to idle connections dying without
  439. being noticed.
  440. * Fixed probing for pipelining.
  441. * Actually use the new time function introduced in 0.5.
  442. * Fixed a bug in strcasecmp_n.
  443. * forbiddenFile can now be a directory.
  444. 26 September 2003: Polipo 0.6
  445. * Fixed precondition handling.
  446. * Fixed a bug that could lead to lockups when revalidating an object.
  447. 27 June 2003: Polipo 0.5
  448. * Made the presence of a reader or writer explicit on the client side.
  449. * Reworked closing client connections.
  450. * Reworked reporting of server-side errors.
  451. * Made buffer allocation lazy; idle clients and servers no longer
  452. use up buffers.
  453. * Reworked UTC time handling to use timegm(3) when available.
  454. 12 March 2003: Polipo 0.4
  455. * Implemented expiry of the on-disk cache.
  456. * Implemented reliable aborting of connections; Polipo should no
  457. * longer deadlock when a server falls into a black hole.
  458. * Changed direct reads to be more aggressive by using readv in
  459. three pieces.
  460. * Changed serving of chunked data to be more eager about
  461. serving a chunk's end marker.
  462. * Implemented better reporting of DNS errors.
  463. * Fixed a deadlock with pipelining on the client side.
  464. * Removed most of the remaining copies when reading on the
  465. * server side.
  466. * Fixed a bug that caused some headers to disappear in transit.
  467. * Fixed a possible livelock when reading chunked encoding.
  468. * Fixed an overflow when pipelining on the server side.
  469. * Fixed generation of indexes from the on-disk cache.
  470. * Fixed a DNS crash when falling back on gethostbyname.
  471. 1 March 2003: Polipo 0.3
  472. * Implemented retrying of timed-out DNS requests.
  473. * Implemented configuration mechanisms for case-insensitive atoms,
  474. time values and atom lists; censoredHeaders can now be configured.
  475. * No longer censors User-Agent. Blame Beppe and Alain.
  476. * Changed the handling of hop-by-hop HTTP headers to deal with multiple
  477. Connection headers.
  478. * Made client-side errors and successful revalidation no longer
  479. close the connection.
  480. * Fixed a bug that caused the allocation of an extraneous 2MB (!)
  481. at startup. Polipo can run in 100KB once again.
  482. * Fixed a refcounting bug and some incorrect frees that could
  483. lead to crashes when recovering from a server-side error.
  484. * Fixed a bug with POST/PUT that could trigger a failed assertion.
  485. * Made sure that POST/PUT don't get scheduled in multiple pieces.
  486. 17 February 2003: Polipo 0.2
  487. * Fixed an incorrect assertion that could cause crashes when the
  488. server is fast.
  489. * Fixed (hopefully) logic for 304 replies.
  490. * Minor tweaks to scheduling that cause some speed increase when the
  491. client is pipelining and the server is fast.
  492. * Minor bug fixes and cleanups.
  493. * Macro-ified do_log and friends.
  494. 3 February 2003: Polipo 0.1
  495. * Initial public release.