]> git.ipfire.org Git - thirdparty/squid.git/blame - ChangeLog
FD leak for 504 replies because we leaked "http->entry" when creating
[thirdparty/squid.git] / ChangeLog
CommitLineData
b93549f6 1Changes to Squid-2.2 ():
2
98b093e7 3 - Removed all SNMP specific ACL code
4 SNMP now uses generic squid ACL's
5 - Removed view-based access crontrol
00b7a8b6 6 - Cleaned up and simplified SNMP section of squid.conf
98b093e7 7 - Changed the SNMP code to use a tree stucture.
00b7a8b6 8 - Added objects to MIB:
9 Request Hit Ratio's
10 Byte Hit Ratio's
11 Number of Clients
61d53e64 12 - Changed SNMP Agent to return object instances correctly.
b93549f6 13 - Added our own assert() macro so we can use debug() instead of
14 printing to stderr.
15 - Added eventFreeMemory().
16 - Fixed ipcCreate() bug when debug_log has FD <= 2.
17 - Changed watchChild() and related code in main.c so that
18 Squid can behave more like a proper daemon process.
19 - Added 'prefer_direct' option (enabled by default) so that
20 people can give parents higher preference than direct.
6703526b 21 - Fixed ipc.c close() bug for async IO. On FreeBSD,
22 comm_close() doesn't work for child processes when async IO is
23 used.
24 - Fixed setting the public key for large ``icons'' (Henrik
25 Nordstrom).
68f87dc5 26 - Rewrote peer digest module to fix memory leaks on reconfigure
27 and clean the code. Increased "current" digest version to 5
28 ("required" version is still 3). Revised "Peer Select" cache
29 manager stats.
30 - Added "-k parse" command line option: parses the config file
31 but does not send a signal unlike other -k options.
1743c283 32 - Revamped storeAbort() calling. Only store_client.c has all
33 the right information to determine if the request should
34 be aborted. Now client and server modules just storeUnregister
35 without ever needing to call storeAbort. In conjunction with
36 this change, we have to add a special check that comm_close()
37 doesn't close a FD while the read/write handler for that FD
38 is still being serviced. See 'current_hdl_fd'.
2328711e 39 - Pid file now rewritten on SIGHUP.
b93549f6 40
4d62b0af 41Changes to Squid-2.1 (November 16, 1998):
8f897f34 42
43 - Changed delayPoolsUpdate() to be called as an event.
44 - Replaced comm_select FD scanning loops with global fd_set
45 structures. Inspired by Jeff Mogul's patch for squid 1.1.
9e1559ea 46 - Moved functions common to dns.c, redirect.c, authenticate.c,
47 ipcache.c, and fqdncache.c into helper.c.
0753aa46 48 - Changed storeClientCopy2() so that it keeps sending the remainder
49 of a STORE_ABORTED request, instead of cutting off the client as
50 soon as the object becomes aborted.
f0538986 51 - Fixed combined ipf-transparent proxy and a local http-accelerator
52 operation (Quinton Dolan).
53 - Rewrote base64_decode.c because of potential buffer overrun
54 bugs.
912432d8 55 - Configurable handling of whitespace in request URI's.
56 See 'uri_whitespace' in squid.conf.
e33ec474 57 - Added ability to generate HTTP redirect messages from
58 the redirector output by prepending "301:" or "302:" to the
59 new url. See FAQ 4.16 for more details.
829a9357 60 - Eliminated refreshWhen() which was out-of-sync with refreshCheck()
61 potentially causing under-utilized cache digests
62 - Maintain refreshCheck statistics on per-protocol basis so we
63 can tell why ICP or Digests return too many misses, etc.
c68e9c6b 64 - Fixed delay_pools.c class2/class3 typo (Simon Woods).
65 - Changed squid.conf's default access controls to deny all
66 HTTP requests. Admins must write ACL rules to specifically
67 allow their local clients.
68 - Patched French error messages (Mathias HERBERTS).
69 - NextStep porting fixes by Mike Laster:
70 - use xstrdup() in cf_gen.c
71 - check for putenv() in configure
72 - #define S_ISDIR macro
73 - Added --disable-poll configure option (Henrik Nordstrom).
74 - Fixed internal URL hostname case bugs (Henrik Nordstrom).
75 - Patched ftp.c so we never cache autenticated FTP requests
76 (Henrik Nordstrom).
77 - Fixed FTP authentication. We tried to unescape authentication
78 given by basic authentication which is not URL escaped
79 (Henrik Nordstrom).
80 - Fixed HTTP version for common logfile format (Henrik Nordstrom).
81 - Added 'redirect_rewrites_host_header' option to disable rewriting
82 of Host header for redirector responses (Henrik Nordstrom).
83 - Allow semi-customized error message signatures (Henrik Nordstrom).
84 - Fixed bug with errors for unsupported requests (Henrik Nordstrom).
85 - Fixed handling of blank lines in ACL input files (Henrik
86 Nordstrom).
87 - Changed proxy_auth ACL type to consist of a list of valid
88 users. REQUIRED == any (same as ident ACL). ACL type user
89 changed to ident since this is what it really is.
90 (Henrik Nordstrom).
91 - Fixed long URL bugs; make sure 'log_uri' never exceeds
92 MAX_URL bytes.
93 - Allow comments in external ACL files (Gerhard Wiesinger).
94 - Added 'range_offset_limit' configuration option. Requests
95 with ranges that start after this value will be passed
96 on unmodified, and Squid will not cache the response
97 (Henrik Nordstrom).
98 - Added Client HTTP Hit byte counters to 'counters' output
99 (Douglas Swarin).
100 - Got Squid to compile with --enable-async-io on FreeBSD.
101 - Fixed infinite loop bug for cachemgr 'config' option.
102 - Fixed cachability bugs for replies with Pragma: no-cache.
103 - Made content-type multipart/x-mixed-replace uncachable.
104 - Y2K fix for parsing dates in "Wed Jun 9 01:29:59 1993 GMT"
105 format (Richard Kettlewell).
106 - Fixed passing -s option to dnsserver processes (Alvaro Jose
107 Fernandez Lago).
108 - Changed proxy_auth to work on internal objects and when in
109 accelerator mode. (Henrik Nordstrom)
110 - Added login=user:password option to cache_peer directive to
111 be used from a dial-up cache where the parent requires proxy
112 authentication. (Henrik Nordstrom)
113 - If you want to "auto-login", then use a URL on the form
114 http://username:password@server/.... Squid now picks this up
115 when going direct, and turns it into basic WWW
116 authentication. It is also possible to do automatic login to
117 certain servers by using a redirector to add the needed
118 authentication information. (Henrik Nordstrom)
04f0ba5c 119 - Changed refreshCheck() so that objects with negative age
120 are always stale.
4d62b0af 121 - Fixed "plain" FTP listings (Henrik Nordstrom).
122 - Fixed showing banner/logon message for top-level FTP
123 directories (Henrik Nordstrom).
124 * Changes below have been made to SQUID_2_1_PATCH1
125 - Fixed pinger packet size assertion.
126 - Fixed WAIS forwarding.
127 - Fixed dnsserver coredump bug caused by using both -D and
128 -s options.
e42d5181 129 * Changes below have been made to SQUID_2_1_PATCH2
130 - Fixed EBIT macro bugs when the bitmask is a 64-bit long.
131 - Fixed proxy auth NULL password bug.
132 - Fixed queueing of multiple peerRefreshDNS events.
133 - Added a stack of StoreEntry objects to be released after
134 store rebuild completes.
135 - Fixed NULL pointer bugs with too-large requests (found by
136 Martin Lathoud).
137 - Fixed reading replies from buggy ident servers. Replies
138 might not have terminating CR or LF (Henrik Nordstrom).
8f897f34 139
41587298 140Changes to Squid-2.0 (October 2, 1998):
71d6dc56 141
4c154d99 142 - Added NAT/Transparent hijacking code from Quinton Dolan.
143 - Added actual filesystem usage to cachemgr 'storedir' page.
41587298 144 Only works for operating systems which support statvfs().
a79d724b 145 - Fixed HTCP compile-time bugs.
146 - Fixed quick_abort bugs. Configured values are stored as
147 Kbytes, not bytes.
41587298 148 - Removed fwdAbortFetch(). It breaks quick_abort and seems
149 mostly useless.
0da7d807 150 - Changed storeDirSelectSwapDir() to skip swap directories
151 when their utilization is over the high water mark ratio.
9ca005ac 152 - Fixed off-by-one bug for dead neighbor detection (Joe Ramey).
18cc143b 153 - fixed bugs in Content-Range header generation
154 - changed the way Range requests are handled:
71d6dc56 155 - do not "advertise" our ability to process ranges at
156 all
157 - on hits, handle simple ranges and forward complex
158 ones
159 - on misses, fetch the whole document for simple ranges
160 and forward range request for complex ranges
161 The change is supposed to decrease the number of cases when
162 clients such as Adobe acrobat reader get confused when we
163 send a "200" response instead of "206" (because we cannot
164 handle complex ranges, even for hits) Note: Support for
165 complex ranges requires storage of partial objects.
41587298 166 - Removed SNMP mib-2.system group from squid.
167 - Removed SNMP ability to iterate through ipcache and friends.
168 - Added SNMP ipcache/fqdncache basic statistics.
169 - Converted SQUID-MIB to SMIv2 (RFC 1902).
170 - Moved SQUID-MIB to enterprises section of the tree in preparation
abcf1bb2 171 of the split into PROXY-MIB & SQUID-MIB.
41587298 172 - Corrected minor errors in SQUID-MIB.
173 - Moved uptime into cacheSystem from cacheConfig.
174 - Corrected a number of get-next-request bugs, snmpwalk should now
abcf1bb2 175 return all objects and not skip some.
41587298 176 - Fixed netdbClosestParent() so it won't return sibling
177 peers.
178 - Fixed a bug with secondary clients on entries with
179 ENTRY_BAD_LENGTH set. We should release the
180 bad entry to prevent secondary clients jumping on.
181 - Changed MIB to prevent parse warnings at startup.
f0538986 182 * Changes below have been made to SQUID_2_0_PATCH1
9689d97c 183 - Fixed a forwarding loop bug. Even though we were detecting
184 a loop, it was not being broken.
185 - Try to prevent sibling forwarding loops by NOT forwarding a
186 request to a sibling if we have a stale copy of the object.
187 Validation requests should only be sent to parents (or
188 direct).
189 - Fixed ncsa_auth hash bugs when re-reading password file.
190 - Changed clientHierarchical() so that by default SSL/CONNECT
191 requests do NOT go to neighbor caches.
d87ebd78 192 - Changed clientHandleIMSReply() to not call storeAbort()
193 because there can be more than one client hanging on the
194 StoreEntry. This hopefully fixes "store_status !=
195 STORE_ABORTED" assertions.
f0538986 196 - Added temporary fix to httpMakePublic() to prevent assertions
197 (!EBIT_TEST(e->flags, RELEASE_REQUEST)) in storeSetPublicKey().
198 * Changes below have been made to SQUID_2_0_PATCH2
199 - PATCH1 introduced a seriously stupid bug which prevented ICP
200 queries for all requests. Fixed by checking
201 request->hierarchical in peerSelectFoo().
18cc143b 202
4c154d99 203Changes to squid-1.2.beta25 (September 21, 1998):
204
4b66bfd3 205 - Fixed async IO bugs from adding filedescriptor arg to AIOCB
206 callbacks (Henrik Nordstrom).
207 - Fixed store_swapout.c assertion. We were freeing object data
208 past the swapout_done offset. This probably happens (only?)
209 when an object changes from cachable to uncachable while
210 it is being swapped out.
a260d877 211 - Added MEM_CLIENT_SOCK_BUF type so we can change the size
212 of the buffers used for writing data to the client sockets.
669d90e7 213 - Added configure check for libbind.a. If found, it will be
214 used instead of libresolv.a.
215 - Changed fwdStart() to always allow internally generated
dddd5b55 216 requests, such as for peer digests. These requests are
217 known to fwdStart() because the address arg is set to
218 'no_addr'.
669d90e7 219 - Completed initial HTCP implementation. It works, but is not
220 tested much.
2d5c8e74 221 - Added counters for I/O syscalls.
222 - Fixed httpMaybeRemovePublic. With broken ICP neighbors
223 (netapp) Squid doesn't use private keys. This caused us
224 to remove almost every object from the cache.
225 - Added 'asndb' cachemgr stats to show AS Number tree.
dddd5b55 226 - Fixed AS Number byte-order bug for netmasks.
2d5c8e74 227 - Fixed comm_incoming calling rate for high loads (Stewart
228 Forster).
426012d2 229 - Give always_direct higher precedence than never_direct
230 (Henrik Nordstrom).
dddd5b55 231 - Changed PORT ACL type to accept ranges. Now you can easily
232 deny, for example, all priveleged ports except 80, 70, 21,
233 etc.
234 - ARP ACL fixes for Linux (David Luyer).
235 - Replaced various "EBIT" flags bitfileds with structures of
236 "int:1" members.
237 - Changed storeKeyPrivate and storeKeyPublic to be a bit more
238 efficient by removing snprintf(). This causes an
239 incompatibility with old cache keys, however. To transition,
240 we will look up both the new and old style keys for about the
241 next 30 days. After that, if you haven't run this (or a
242 future) version, your cache contents will be lost.
243 - Made the client-side write buffer size configurable with
244 a #define in defines.h. By default it is still 4096 bytes.
245 - Removed redirectUnregister(). It should be unnecessary
246 because of cbdata locks.
247 - Fixed multiple HEAD request brokennesses (Henrik Nordstrom).
248 - Changed non-blocking connect(2) code to call getsockopt()
249 instead of connect() again. This is the approach recommended
250 by Stevens, and fixes bugs on BSD-ish systems when subsequent
251 connect() calls loop with EAGAIN status.
252 - Added MD5 cache keys to memory pool accounting.
253 - Added code to track number of open DISK descriptors and stop
254 swapping out objects if the number of disk descriptors becomes
255 too large. For now the limit must be manually configured with
256 the 'max_open_disk_fds'. By default, there is no limit.
257 - Stopped encoding a request method in the high byte of the ICP
258 reqnum field. Instead queried cache keys are copied to a
259 static array, indexed by the reqnum, modulo the array size.
260 Now we just use the request number to lookup a cache key,
261 instead of rebuilding it from the ICP reply URL and method,
262 unless we have netapp neighbors--they don't do reqnum
263 properly.
264 - Fixed reconfigure memory access bugs in redirect.c.
0753aa46 265 - Ignore unreasonably large ICP RTT values which cause overflow
266 bugs in calculating the average RTT (thanks Niall!)
4b66bfd3 267
8e6a43e8 268Changes to squid-1.2.beta24 (August 21, 1998):
269
6c4067e5 270 - Added Bulgarian error pages by Evgeny Gechev.
ceb79b2b 271 - Changed StoreEntry->lock_count to a u_short.
c7d6216e 272 - Replaced urlcmp with strcmp
273 - Fixed pragma no-cache ejecting ENTRY_SPECIAL objects
274 (Henrik Nordstrom).
275 - Eliminated unneeded BASE HREF on "root" directories (Henrik
276 Nordstrom).
277 - Fixed peerDigestFetchFinish() assertion caused by forwarding
278 failures (e.g. miss_access rules).
ada249f8 279 - Changed signal handlers with ASYNC_IO and Linux so that
280 -k command line options work (Miquel van Smoorenburg).
4616f9ea 281 - Rewrote shutdown code to use events instead of setting
282 FD timeouts.
903e21a0 283 - Fixed cachemgr 'objects' (statObjects()) by adding a check
b6a76fb2 284 for READ_AHEAD_GAP, and calling storeCheckSwapout() in
285 storeBufferFlush(). Otherwise, the read-past pages would
286 never be freed.
681979a2 287 - Fixed DNSSERVER shutdown bugs. The re-opened dnsserver processes
288 were being closed by the dnsServerShutdown event.
b6a76fb2 289 - Modified storeHashInsert() to insert PRIVATE objects at
290 the tail of the LRU list, and PUBLIC objects at the head.
291 Thus, PRIVATE objects get kicked out quicker.
95e36d02 292 - Added David Luyer's DELAY_POOLS code.
54b5b3e5 293 - Fixed a bug due to HEAD replies which lack the end-of-headers
294 line.
295 - Made proxy-auth realm string configurable (Bob Franklin)
296 - Changed default mime time to a viewable one (Henrik Nordstrom).
297 - configure fixes for Sony's NEWS-OS 6.x (Makoto MATSUSHITA).
298 - Fixed 'you are running out of filedescriptors' bug which
299 could cause the HTTP incoming connection handler to not
300 be reset.
e23fbf04 301 - Changed syslog logging. Now squid debug levels 0 and 1 go
d737baa0 302 to syslog. Level 0 gets LOG_WARNING and level 1 gets LOG_NOTICE
e23fbf04 303 (this needs more work!)
2cb51fe0 304 - Fixed memory access errors in statAvgTick().
abc1237e 305 - Fixed duplicate requestUnlink() bug in forward.c
6c4067e5 306 - Fixed possible memory access bugs from not setting e->mem_obj
307 = NULL in destroy_MemObject().
308 - Deleted TCP_IMS_MISS tag. Always use TCP_IMS_HIT instead.
309 - Modified headersEnd and httpMsgIsolateHeaders to account
310 for funky line terminations such as CRCRNL.
311 (``but Netscape and IE _tolerate_ this'')
312 - Fixed carp functions (Eric Stern).
313 - Replaced internal proxy_auth code with extern authentication
314 module (Arjan de Vet).
315 - moved hash.c to libmiscutil.a.
e931f99a 316 - Fixed handling of ICP queries with whitespace in URLs.
317 Now we return ICP error and escape the URL before logging.
3a15a393 318 - Added configure check for socklen_t (David Luyer).
319 - Removed USE_SPLAY #defines; it is now standard.
3a76c002 320 - Added FD arg to async IO callbacks (AIOCB) so we can eliminate
321 temporary disk_ctrl_t structures.
322 - Changed ENOSPC disk write errors to reduce specific cache_dir
323 sizes, and not just the size of the cache as a whole.
f9cece6e 324 - Added httpMaybeRemovePublic() to purge public objects for
325 certain responses even though they are uncachable. This is
326 needed, for example, when an initially cachable object
327 later becomes uncachable.
8e6a43e8 328 - Added refresh_pattern options to ignore client reloads
329 (Henrik Nordstrom)
330 - Relocated disk.c code which combines blocks for writing
331 (Stewart Forster).
c7d6216e 332
857703c6 333Changes to squid-1.2.beta23 (June 22, 1998):
334
cf7f704c 335 - Added Turkish error pages by Tural KAPTAN.
66bbb757 336 - Added basic support for Range requests. For most cachable
337 requests, Squid replies with an "Accept-Ranges" header. Upon
338 receiving a potentially cachable Range request for a not
339 cached object, Squid requests the whole object from origin
340 server and then replies with specified range(s) to the
341 client. Multi-range requests are supported. Adjacent
342 overlapping ranges are merged. If-Range requests are
343 supported. Limitations: Multi-range requests with out of
344 order ranges are not supported.
345 - Made md5.c use standard memcpy and memset if they are
346 avaliable.
347 - Memory pools will now shrink if Squid is run-time
348 reconfigured with smaller value of memory_pools_limit tag.
349 - Added counter for number of clients (Tomi Hakala).
350 - Changed neighbor UP/DOWN algorithm to require 10 failed TCP
351 connections for UP->DOWN transition.
352 - Added 'unique_hostname' configuration option when its
353 necessary to have multiple machines with the same visible
354 hostname.
222917b2 355 - Fixed pumpReadFromClient() to not read too many bytes on
356 persistent connections.
53856ebd 357 - We can now cache HTTP replies with Set-Cookie. These evil
358 headers are now filtered out for cache hits on the client
359 side.
222917b2 360 - Fixed SNMP bugs caused by using snmpwalk.
9089cc70 361 - Fixed snmp system Group; all objects are now returned.
362 - Fixed snmp system Group sysDescr and sysContact.
78dfab2a 363 - Fixed snmp system Group sysObjectID it now returns a OBJECT
364 IDENTIFIER.
7fce9c3e 365 - Allocate FwdState from mem pools.
366 - Minor HTCP progress.
222917b2 367 - Moved 'miss_access' ACL check from client_side.c to forward.c
ed169eab 368 - Fixed logging of usernames for requests which require
369 proxy-authentication.
cf7f704c 370 - Fixed HTTP request parser to accept lowercase HTTP identifier
371 (Oskar Pearson).
372 - Fixed FTP listings to always include links to the parent
373 directory (Henrik Nordstrom).
374 - Fixed FTP to show an "empty" listing instead of showing
375 a "document contains no data" error (Henrik Nordstrom).
376 - Fixed refreshCheck() bug. Often it was checking the
377 refresh patterns against the string "[null_mem_obj]"
378 because we moved URLs to MemObject.
379 - Added CARP support by Eric Stern.
48382032 380 - Fixed select-spin bug when an ICP reply actually gets queued
381 and we failed to execute the write callback.
354b5fe1 382 - Fixed a storeCheckSwapOut bug. We were freeing up to
383 the queued offset instead of the done offset. This
384 resulted in a small chunk of object data not being in
385 memory and not yet written to disk. A client could
386 recieve a partial object because file_read() unexpectedly
387 returns EOF.
0aa791f8 388 - Fixed proxy-authentication hangs (Henrik Nordstrom).
c2354a6b 389 - Fixed request_t->flags bug causing authenticated, proxied
390 responses to be cached (Arjan de Vet).
e0e32f36 391 - Fixed MIME types for .tgz extension (Henrik Nordstrom).
392 - Added view and download options to FTP listings (Henrik
393 Nordstrom).
394 - Modified configure to allow using pre-installed libdlmalloc.a
395 (Masashi Fujita).
e8d8856c 396 - Fixed cachemgr 'objects' implementation.
fecf98dc 397 - Changed refreshCheck() algorithm. For cached objects, we
398 now check, in the following order:
399 * request max-age
400 * response Expires (if present)
401 * refresh_pattern max-age
402 * response Last-Modified compared to refresh_pattern
403 LM-factor (only if Last-Modified is present)
404 * refresh_pattern min-age
405 - Changed Copyrights.
d192d11f 406
ee3a78d4 407Changes to squid-1.2.beta22 (June 1, 1998):
408
2246b732 409 - do not cut off "; parameter" from "digitized" Content-Type
410 http fields
411 - Added X-Request-URI for persistent connection debugging
412 (Henrik Nordstrom)
f4d83f6d 413 - Added Polish error pages from Maciej Kozinski.
145f10f1 414 - Fixed hash_first/hash_next bugs with **Current pointer.
415 Replaced with *next pointer.
f4d83f6d 416 - Fixed PUT/POST bugs in client (Henrik Nordstrom).
417 - Deny forwarding loops in httpd accel mode (Henrik Nordstrom).
418 - Fixed eventRun "spin" bug when event delta time == 0.
a9cc1935 419 - Fixed setting Last Modified time on cached entries when
420 receiving a 304 reply.
06e87923 421 - Added while loop in httpAccept().
422 - Added while loop in icpHandleUdp().
423 - Fixed some small memory leaks.
424 - Fixed single-bit-int flag checks (Henrik Nordstrom).
137ee196 425 - Replaced "complex" (offset accounting) calls to snprintf with MemBuf
426 - Do not send only-if-cached cc directive with requests
427 for peer's digests.
ee3a78d4 428 - Added "automatic tuning" for incoming request rate, i.e.
429 how often to check HTTP and ICP sockets. See comm.c
430 comments for details.
145f10f1 431
6ee40ea2 432Changes to squid-1.2.beta21 (May 22, 1998):
433
434b408f 434 - Added Italian error pages by Alessio Bragadini.
a3f9588e 435 - Added Estonian error pages by Toomas Soome.
06066bbc 436 - Added Russian (koi-r) error pages by Andrew L. Davydov.
7b381d33 437 - Added Czech error pages by Jakub Nantl.
8e866bb4 438 - Fixed asnAclInitialize calling to prevent coredump.
439 - Fixed FTP directory parsing again.
440 - Made FTP directory listing "Generated" tagline like
441 the one for error pages.
52f977aa 442 - Fixed an assertion coredump in statHistCopy from
443 reconfiguring with different #peers in squid.conf
10202788 444 - Ignore leading whitespace on requests (and replies). RFC
445 2068 section 4.1, robustness (Henrik Nordstrom)
446 - Fixed keep_alive bug. We did not always honour reply
447 headers, but rather assumed connections could be persistent.
448 - Fixed reading whois output for AS numbers, especially when
449 they are longer than 4 KB.
450 - Removed 'cache_stoplist_pattern' configuration option. This
451 feature is now handled by 'no_cache'.
452 - If a URN resolves to only one URL, just return it immediately
453 instead of giving the user a "choice" (Andy Powell).
454 - Fixed year-2000 bug in lib/iso3307.c (Henrik Nordstrom).
455 - Changed squid-internal object names.
456 - Added netdb exchange protocol.
457 - Fixed wordlistDestroy() uninitialized pointer bug in
458 ftpParseControlReply.
06066bbc 459 - Fixed redirector subprocess to show real program name.
460 - Changed URN menu output to be sorted.
461 - Added fast select(2) timeouts when using ASYNC_IO.
462 - Added ARP ACL support for Linux (David Luyer).
2246b732 463 - Added binary http headers to requests
99edd1c3 464 - request_t objects are now created and destroyed in a consistent way
465 - Fixed cache control printf bug
466 - Added a lot of new http header ids
467 - Improved Connection: header handling; now both Connection and
2246b732 468 Proxy-Connection headers are checked for connection directives
99edd1c3 469 - Connection request header is now handled correctly regardless
470 of its position and the number of entries
2246b732 471 - Only replies with valid Content-Length can be sent with keep-alive
472 connection directive (Henrik Nordstrom)
473 - Better handling of persistent connection "clues" in HTTP headers;
474 the decision now depends on HTTP version (and User-Agent exceptions)
99edd1c3 475 - Removed handling of "length=" directive in IMS headers;
476 the directive is not in the HTTP/1.1 standard;
477 standing by for objections
478 - allowed/denied headers are now checked using bit masks instead of
479 strcmp loops
480 - removed Uri: from allowed headers; Uri is deprecated in RFC 2068
2246b732 481 - removed processing of Request-Range header (not in specs?)
7b381d33 482 - Fixed byte-order bugs in cacheDigestHashKey.
483 - Changed hash_remove_link() to return void.
484 - Changed ipcache_gethostbyname() to return NULL if
485 i->addrs.count == 0.
6de5fa88 486 - Added millisecond-timing to select/poll loops and event
487 queue.
488 - Changed 'peerPingTimeout' value to be twice the average
489 of all the peer ICP RTT's.
490 - Added 'half_closed_clients' option to force closing of
491 client connections which might only be half-closed.
492 - Fixed matchDomainName coredump bug.
493 - Don't cache HTTP replies with Vary: headers until we
494 get content negotiation working.
495 - Fixed SSL proxying to forward full HTTP request headers.
c09459dd 496 - Changed storeGetMemSpace(). Only purge down to the HIGH
497 water mark; move locked entries to the head of the inmem
498 list.
499 - Changed clientReadRequest() to locally handle any
500 "squid-internal-static" URL for any host.
52f977aa 501 - Disable persistent connections for client connections
502 from broken Netscape User-Agent, version 3.* (Stewart Forster)
434b408f 503
901b8eaf 504Changes to squid-1.2.beta20 (April 24, 1998):
505
fd1bc012 506 - Improved support for only-if-cached cache control directive.
507 - Enabled 304 replies for ENTRY_SPECIAL objects (e.g., icons).
a1a62b14 508 - Fixed 'quick_abort' percent calculation bug.
509 - Fixed quick_abort FPE bug.
510 - Changed more errno-checking functions to use ignoreErrno().
511 - Added ERESTART to ignoreErrno() because of report from
512 a Solaris system.
513 - Fixed '#elsif' typo.
514 - Fixed MemPool assertion by moving memInit() to before
515 configuration parsing functions.
516 - Fixed default 'announce_period' value (was 1 day, should
517 be 0) (Joe Ramey).
518 - Added configure warning for low filedescriptors and pointer
519 to FAQ.
b0497a40 520 - Fixed httpBodySet() bug causing URN related coredumps.
521 - Changed ipcacheCycleAddr() to always cycle through all all
522 available addresses, and not just advance when one of
523 them goes BAD.
524 - Fixed squid-internal bug for mixed-case hostnames (Henrik
525 Nordstrom).
4e41d49f 526 - Fixed ICP counting probelm. icpUdpSend() arg should be
527 LOG_ICP_QUERY instead of LOG_TAG_NONE.
e4b71f74 528 - Added some additional fault toleranse on FTP data channels
529 (Henrik Nordstrom).
530 - Corrected error reporting on FTP "hacks" (Henrik Nordstrom).
531 - Added lock/unlock for StoreEntry during storeAbort().
532 - Added filemap bit usage stats to cachemgr 'storedir' and
533 'info'.
534 - Replaced 'cache_stoplist' with 'no_cache' Access list.
535 - Fixed (hopefully) remaining swapfile-open-at-exit bugs.
44745828 536 - Fixed default hierarchy_stoplist to be ``default if none.''
537 - Fixed 'fake a recent reply' hack for detecting DEAD
538 and ALIVE neighbors (Joe Ramey).
e376562a 539 - Fixed FTP directory parsing bugs (Joe Ramey).
540 - Fixed ftpTraverseDirectory coredump for NULL ftpState->filepath
541 (Joe Ramey).
dea17509 542 - Fixed daylight savings time bug (again).
fd1bc012 543 - A lot of Cache Digests additions, fixes, and tuning.
544 Cache Digests are still "very experimental".
e376562a 545 - Fixed snprintf() bug. When len == 1, snprintf() would treat
546 the buffer as unknown size, emulating sprintf() behaviour.
547 - Made Error page language configurable with configure script
548 (Henrik Nordstrom).
549 - Fixed squid-internal URLs when http_port == 80.
550 - Remember the client address on redirected requests (Henrik
551 Nordstrom).
552 - Don't rebuild the request if the redirector returned the same
553 URL (Henrik Nordstrom).
554 - Rewrite Host: header on redirected requests (Henrik
555 Nordstrom).
556 - Include port (if non-standard) in generated Host: headers
557 (Henrik Nordstrom).
558 - Fixed rfc1123 timezone hacks for Windows NT
559 (Henrik Nordstrom).
560 - Added Russian Error pages by Ilia Zadorozhko.
561 - Added totals for ICP and HTTP hits to cachemgr client_list
562 output.
6cfa8966 563 - Changed error message to 'Generated TIME by HOST (SQUID/VER)'
564 because any string with an '@' must be an email address.
e376562a 565 - Fixed POST for content-length == 0.
901b8eaf 566 - Fixed "huge 304 reply" loop bug.
5e9ab945 567 - Fixed --enable-splaytree compile bugs.
c93fbf13 568 - Removed ASN lookup code in peer_select.c.
fd1bc012 569
005e5260 570Changes to squid-1.2.beta19 (Apr 8, 1998):
571
b0497a40 572 - Squid-1.2.beta19 compiles and runs on Windows/NT with
573 Cygnus Gnu-WIN32 b19 (Henrik Nordstrom).
447203a7 574 - Added French Error pages by Frank DENIS.
575 - Added Dutch Error pages by Mark Visser
901b8eaf 576 - Added German Error pages by Bernd P. Ziller, Jens Frank,
577 and Anke S.
f9f2be04 578 - Added support for only-if-cached cache-control directive.
005e5260 579 - Added RELAXED_HTTP_PARSER #define to allow requests which are
580 missing the HTTP identifier on the request line (e.g. buggy
581 SpyGame queries). RELAXED_HTTP_PARSER is undefined by default.
1f4d31f9 582 - Fixed disk.c FD leak for delayed closes in
583 diskHandleWriteComplete().
584 - Fixed cache announcement feature.
20fe7191 585 - Fixed httpReadReply() to retry failed HTTP requests on
586 persistent connections when read() returns -1, not only
587 when it returns 0.
805e5f70 588 - Fixed cbdata memory counting leak. cbdataUnlock() always
589 called free(), never memFree().
ff396fe6 590 - Fixed storeDirWriteCleanLogs() malloc bug on Alphas.
005e5260 591 - Fixed `++loopdetect < 10' assertion due to
592 clientHandleIMSReply bug for invalid/partial HTTP
593 replies.
594 - Added preliminary code for HTCP.
595 - Renamed 'aux' dir to 'cfgaux' for legacy DOS machines.
596 - Added "snmp_community" as an ACL type.
597 - Cleaned up proxy-auth acl implementation and removed
598 memory leaks.
599 - Added generic 'hashFreeItems()' function for efficiently
600 freeing hash table pointers.
601 - Added whoisTimeout() for ASN code.
447203a7 602 - Removed BINARY TREE code.
005e5260 603 - Fixed forgetting to reset Config.Swap.maxSize in
604 configDoConfigure.
605 - Fixed httpReplyUpdateOnNotModified() arguments-in-wrong-order
606 bug which caused not modified replies to not get updated.
607 - Fixed client_side.c bugs which could cause data to be written
608 to the client in the wrong order for persistent connections.
609 clientPurgeRequest() and clientHandleIMSComplete() must not
610 call comm_write(). Instead they must create and write to
611 StoreEntry's.
612 - Fixed ICP query service time counting bug(s).
613 - replaced 'char *mime_headers_end()' with 'size_t headersEnd()'
614 to fix buffer overruns. This also requires adding 'buf_sz'
615 args to some functions like clientBuildReplyHeader().
616 But we can eliminate the need to NULL-terminate the
617 buffer beforehand.
618 - Changed commConnectCallback() to reset the FD timeout to
619 zero before notifying about the connection. This requires
620 commSetTimeout() calls in numerous places to reinstall
621 timeouts.
622 - Changed comm_poll_incoming() to be called less frequently
623 (every 15 I/O's instead of every 7 FD's) (Michael O'Reilly).
624 - Removed HAVE_SYSLOG case for debug() macro. Almost all
625 systems do have syslog(), but more importatnly the
626 _db_level value is needed for debugging to stderr.
627 - Rewrote squid/dnsserver interface to use smaller, single-line
628 messages.
629 - Rewrote 'dns' cachemgr output to use a table format.
630 - Rewrote a lot of dnsserver.c.
631 - Added eventAddIsh() for semi-random event scheduling.
632 - Fixed an ftpTimeout bug for sessions which use PORT
633 commands.
634 - Fixed ftp.c to recognized invalid PASV replies (e.g.
635 port == 0).
636 - Removed hash_insert(). All hasing uses hash_join() now.
637 - Renamed hash_unlink() to hash_remove_link().
638 - Added hashPrime() to find closes prime hash table size
639 to a given value.
640 - Fixed Keep-Alive ratio counting bug which prevented
641 persistent connections from being used between cache
642 peers.
643 - Changed icmp.c to NOT queue messages sent from squid to
644 the pinger program.
645 - Changed icp_v2.c to NOT queue ICP messages by default.
646 But they will be queued and resent once if the first
647 send fails. Counters.icp.queued_replies counts the
648 number of messaages queued.
649 - Cleaned up ICP logging.
650 - Added identTimeout().
651 - Fixed ipcache reply counting bug. Overcounted dnsserver
652 replies for partial replies.
653 - Added urlInternal() for building internal Squid URLs.
654 - Changed peerAllowedToUse() to check both 'cache_peer_domain'
655 AND 'cache_peer_acl' configurations. This should be changed
656 in the fugure to use ONLY cache_peer_acl.
657 - Changed DEAD/REVIVED neighbor detection to avoid reporting
658 so many false deaths. (Joe Ramey).
659 - Added some preliminary code to support "cache digests."
660 - Fixed pumpClose() coredumps (?).
661 - Updated cachemgr 'info' output to show median service
662 times for various categories.
663 - Fixed ABW bug in storeDirWriteCleanLogs(). sizeof(off_t)
664 != sizeof(int) for Alphas.
665 - Fixed potential alignment problem in storeDirWriteCleanLogs().
666 - Fixed store_rebuild.c to NOT replace current, but
667 not-swapped-out StoreEntry's with on-disk entries.
668 - Changed storeCleanup() to call storeRelease on invalid
669 entries which don't have a swapfile (i.e. no unlink()
670 penalty).
671 - Fixed storeSwapInStart() to fail for unvalidated
672 entries.
673 - SNMP changes:
674 . renovated mib and added descriptions and comments
675 . added hit and byte counters to client_db , for
676 cacheClientTable
677 . cacheClientTable, netdbTable, cachePeerTable,
678 cacheConnTable now indexed by ip address. hash_lookup was
679 enhanced to allow for subsequent hash_next's similar to
680 hash_first, to speed up getnext's in tables which refer to
681 hash-table structures.
682 . added generic (well, sorf of) table indexing functionality
683 . added makefile dependencies for snmplib and cache_snmp.h
684 . WaisHost, WaisPort, Timeouts removed
685 . FdTable split into FdTable and ConnTable. FdTable simplified
686 . PeerTable and PeerStat merged and put into new cacheMesh
687 group
688 . cacheClientTable added for client statistics and accounting
689 (cacheMesh 2)
690 . cacheSec and cacheAccounting groups removed
691 . fixed acl bug when communities not defined
692 . snmp_acl now survives bad configuration
81d0c856 693
9a713ffb 694Changes to squid-1.2.beta18 (Mar 23, 1998):
695
275d9f2e 696 - Added v1.1 'test_reachability' option.
697 - Fixed hash4() len == 0 bug.
2c26197b 698 - Fixed Config.Swap.maxSize reconfigure bug.
699 - Fixed ICP query bug determining request method.
700 - Moved ICP's storeGet() cache lookup into neighborsUdpAck()
701 so that we know neighbors are alive even when they send
702 us replies for unknown entries.
703 - Changed configure script to add '-std1' for Digital Unix cc.
704 - Fixed SNMP sizeof(int) / sizeof(long) bugs for 64-bit
705 systems.
706 - Added support for 'Cache-Control: Only-If-Cached' request header.
34ad1721 707 - Fixed CheckQuickAbort() bugs for multiple clients on one
708 StoreEntry. Also changed storePendingNClients() to return
709 mem->nclients instead of counting the number of store_client
710 entries with pending callback functions.
275d9f2e 711
041b157e 712Changes to squid-1.2.beta17 (Mar 17, 1998):
713
df43fc93 714 - SNMP MIB version check changed to non-rcs.
02922e76 715 - Added memory pools for variable size objects (strings).
716 There are three pools; for small, medium, and large objects.
717 - Extended String object to use memory pools. Most fixed size char
718 array fields will be replaced using string pools. Same for most
719 malloc()-ed buffers.
5e14bf6d 720 - Changed icon handling to use the hostname and port of the squid
9ed90c85 721 server, instead of the special hostname "internal.squid"
722 (Henrik Nordstrom).
5e14bf6d 723 - All icons are now configured in mime.conf. No hardcoded icons,
f8360ee3 724 including gohper icons (Henrik Nordstrom).
459f2559 725 - Fixed ICP bug when we send queries, but expect zero
726 replies.
ed9c0b33 727 - Fixed alignment/casting bugs for ICP messages.
2b5b6324 728 - A generic client-to-server "pump" was added to handle HTTP
729 PUT as well as POST methods on the client-cache side. Based on
730 "pump" PUT requests can be made to either HTTP or FTP url's.
731 Code is still beta and interoperability with browsers etc has
732 not been tested.
733 - Put #ifdefs around 'source_ping' code.
5e14bf6d 734 - Added missing typedef for _arp_ip_data (Wesha).
735 - Added regular-expression-based ACLs for client and server
736 domain names (Henrik Nordstrom).
737 - Fixed ident-related coredumps from incorrect callback data.
738 - Fixed parse_rfc1123() "space" bug.
739 - Fixed xrealloc() XMALLOC_DEBUG bug (not calling check_free())..
740 - Fixed some src/asn.c end-of-reply bugs and memory leaks.
741 - Fixed some peer->options flag-setting bugs.
742 - Fixed single-parent feature to work again
743 - Removed 'single_parent_bypass' configuration option; instead
744 just use 'no-query'.
745 - Surrounded 'source_ping' code with #ifdefs.
746 - Changed 'deny_info URL' to use a custom Error page.
747 - Modified src/client.c for testing POST requests.
041b157e 748 - Fixed hash4() for SCO (Vlado Potisk).
459f2559 749
7ba777f2 750Changes to squid-1.2.beta16 (Mar 4, 1998):
751
447203a7 752 - Added Spanish error messages from Javier Puche.
02922e76 753 - Added Portuguese error messages from Pedro Lineu Orso
0965bd19 754 - Added a simple but very effective hack to cachemgr.cgi that tries to
755 interpret lines with '\t' as table records and formats them
756 accordingly. With a few exceptions (see source code), first line
757 becomes a table heading ("<th>" html tag) and the rest is formated
758 with "<td>" tags.
7021844c 759 - Added "mem_pools_limit" configuration option. Semantics of
760 "mem_pools" option has also changed a bit to reflect new memory
761 management policy.
7ba777f2 762 - Reorganized memory pools. Squid now supports a global pool
763 limit instead of individual pool limits. Per-pool limits can be
3a88d597 764 implemented on top of the current scheme if needed, but it is
7ba777f2 765 probably hard to guess their values. Squid distributes pool
766 memory among "frequently allocated" objects. There is a
767 configurable limit on the total amount of "idle" memory to be
768 kept in reserve. All requests that exceed that amount are
769 satisfied using malloc library. Support for variable size
770 objects (mostly strings) will be enabled soon.
771 - memAllocate() has now only one parameter. Objects are always
772 reset with 0s. (We actually never used that parameter before;
773 it was always set to "clear").
774 - Added Squid "signature" to all ERR_ pages. The signature is
775 hardcoded and is added on-the-fly. The signature may use
776 %-escapes. Added interface to add more hard-coded responses if
777 needed (see errorpage.c::error_hard_text).
778 - Both default and configured directories are searched for ERR_
779 pages now. Configured directory is, of course, searched first.
780 This allows you to customize a subset of ERR_ pages (in a
781 separate directory) without danger of getting other copies out
782 of sync.
783 - Security controls for the SNMP agent added. Besides
784 communities (like password) and views (part of tree
785 accessible), the snmp_acl config option can be used to do acl
786 based access checks per community.
787 - SNMP agent was heavily re-written, based on cmu-snmpV1.8. You
788 can now walk through the whole mib tree. Several new variables
789 added under cacheProtoAggregateStats
12cf1be2 790 - Added rudimental statistics for HTTP headers.
7ba777f2 791 - Adjusted StatLogHist to a more generic/flexible StatHist.
12cf1be2 792 Moved StatHist implementation into a separate file.
178dbda2 793 - Added FTP support for PORT if PASV fails, also try the
794 default FTP data port (Henrik Nordstrom).
795 - Fixed NULL pointer bug in clientGetHeadersForIMS when a
796 request is cancelled for fails on the client side.
797 - Filled in some squid.conf comments (never_direct,
798 always_direct).
799 - Added RES_DNSRCH to dnsserver's _res.options when the
800 -D command line option is given.
801 - Fixed repeated Detected DEAD/REVIVED Sibling messages when
802 peer->tcp_up == 0 (Michael O'Reilly).
803 - Fixed storeGetNextFile's incorrect "directory does not exist"
804 errors (Michael O'Reilly).
805 - Fixed aiops.c race condition (Michael O'Reilly, Stewart
806 Forster).
807 - Added 'dns_nameservers' config option to specify non-default
808 DNS nameserver addresses (Maxim Krasnyansky).
809 - Added lib/util.c code to show memory map as a tree
810 (Henrik Nordstrom).
811 - Added HTTP and ICP median service times to Counters and
812 cachemgr average stats.
813 - Changed "-d" command line option to take debugging level
814 as argument. Debugging equal-to or less-than the argument
815 will be written to stderr.
ef65d6ca 816 - Removed unused urlClean() function from url.c.
adba4a64 817 - Fixed a bug that allowed '?' parts of urls to be recorded in
ef65d6ca 818 store.log. Logged urls are now "clean".
178dbda2 819 - Cache Manager got new Web interface (cachemgr.cgi). New .cgi
820 script forwards basic authentication from browser to squid.
821 Authentication info is encoded within all dynamically generated
822 pages so you do not have to type your password often.
823 Authentication records expire after 3 hours (default) since
824 last use. Cachemgr.cgi now recognizes "action protection" types
825 described below.
826 - Added better recognition of available protection for actions
827 in Cache Manager. Actions are classified as "public" (no
828 password needed), "protected" (must specify a valid password),
829 "disabled" (those with a "disable" password in squid.conf), and
830 "hidden" (actions that require a password, but do not have
831 corresponding cachemgr_passwd entry). If you manage to request
832 a hidden, disabled, or unknown action, squid replies with
833 "Invalid URL" message. If a password is needed, and you failed
834 to provide one, squid replies with "Access Denied" message and
835 asks you to authenticate yourself.
836 - Added "basic" authentication scheme for the Cache Manager.
837 When a password protected function is accessed, Squid sends an
838 HTTP_UNAUTHORIZED reply allowing the client to authorize itself
839 by specifying "name" and "password" for the specified action.
840 The user name is currently used for logging purposes only. The
841 password must be an appropriate "cachemgr_passwd" entry from
842 squid.conf. The old interface (appending @password to the url)
843 is still supported but discouraged. Note: it is not possible
844 to pass authentication information between squid and browser
845 *via a web server*. The server will strip all authentication
846 headers coming from the browser. A similar problem exists for
847 Proxy-Authentication scheme.
848 - Added ERR_CACHE_MGR_ACCESS_DENIED page to notify of
849 authentication failures when accessing Cache Manager.
63259c34 850 - Added "-v" (Verbose) and "-H" (extra Headers) options to client.c.
178dbda2 851 - Added simple context-based debugging to debug.c. Currently,
852 the context is defined as a constant string. Context reporting
853 is triggered by debug() calls. Context debugging routines
854 print minimal amount of information sufficient to describe
855 current context. The interface will be enhanced in the future.
856 - Replaced _http_reply with HttpReply. HttpReply is a
857 stand-alone object that is responsible for parsing, swapping,
858 and comm_writing of HTTP replies. Moved these functions from
859 various modules into HttpReply module.
8bfcd557 860 - Added HttpStatusLine, HttpHeader, HttpBody.
178dbda2 861 - All HTTP headers are now parsed and stored in a "compiled"
862 form in the HttpHeader object. This allows for a great
863 flexibility in header processing and builds basis for support
864 of yet unsupported HTTP headers.
865 - Added Packer, a memory/store redirector with a printf
866 interface. Packer allows to comm_write() or swap() an object
867 using a single routine.
868 - Added MemBuf, a auto-growing memory buffer with printf
869 capabilities. MemBuf replaces most of old local buffers for
870 compiling text messages.
871 - Added MemPool that maintains a pre-allocated pool of opaque
872 objects. Used to eliminate memory thrashing when allocating
873 small objects (e.g. field-names and field-value in http
874 headers).
8bfcd557 875
3197e644 876Changes to squid-1.2.beta15 (Feb 13, 1998):
877
55647891 878 NOTE: This version has changes which may cause all or part
879 of your cache to be lost. However, you can problably
880 save most of it by doing a slow restart. Specifically:
881
882 1. Kill the running squid-1.2.beta14 process; wait for it to
883 fully exit.
884 2. Remove all 'swap.state*' files, either in each cache_dir, or
885 as defined in your squid.conf
886 3. Start squid-1.2.beta15. The store will be rebuilt from the
887 existing swap files, reading the directories and opening
888 the files.
889
bcfbdc11 890 - Fixed some problems related to disk (and pipe) write error
891 handling. file_close() doesn't always close the file
892 immediately; i.e. when there are pending buffers to write.
893 StoreEntry->lock_count could become zero while a write is
894 pending, then bad things happen during the callback.
895 - The file_write() callback data must now be in the callback
896 database (cbdata). We now use the swapout_ctrl_t structure
897 for the callback data; it stays around for as long as we are
898 swapping out.
899 - Changed the way write errors are handled by diskHandleWrite.
900 If there is no callback function, now we exit with a fatal
901 message under the assumption that the file in question is a
902 log file or IPC pipe. Otherwise, we flush all the pending
903 write buffers (so we don't see multiple repeated write errors
904 from the same descriptor) and let the upper layer decide how
905 to handle the failure.
906 - Fixed storeDirWriteCleanLogs. A write failure was leaving
907 some empty swap.state files, even though it tells us that its
908 "not replacing the file." Don't flush/rename logs which we
909 have prematurely closed due to write failures, indiciated by
910 fd[dirn] == -1. Close these files LAST, not before
911 renaming.
912 - Fixed storeDirClean to clean directories in a more sensible
913 order, instead of the new "MONOTONIC" order for swap files.
0465e406 914 - Merged fdstat.c functions into fd.c.
915 - Cleaned up some debugging sections. Some unrelated source
916 files were using the same section.
917 - Removed curly brackets from all cachemgr output.
918 - Removed unused filemap->last_file_number_allocated member.
919 - Removed unused fde->lifetime_data member.
920 - Fixed incorrectly applying htonl() on icp_common_t->shostid.
921 - Call setsid() before exec() in ipc.c so that child processes
922 don't receive SIGINT (etc) when running squid on a tty.
2f2dd5ad 923 - Changed StoreEntry->object_len to ->swap_file_sz so we
924 can verify the disk file size at restart. Moved object_len
925 to MemObject->object_sz. Note object_sz is initialized
926 to -1. If object_sz < 0, then we need to open the swap
927 file and read the swap metadata.
928 - Changed store_client->mem to ->entry because we need
929 e->swap_file_sz to set mem->object_sz at swapin.
2f2dd5ad 930 - Renamed storeSwapData structure to storeSwapLogData.
931 - Fixed storeGetNextFile to not increment d->dirn. Added
932 check for opendir() failure.
933 - Fixed storeRebuildStart to properly link the directory
934 list for storeRebuildfromDirectory mode.
e157f97f 935 - Added -S command line option to double-check store
936 consistency with disk files in storeCleanup().
937 - Fixed a problem with transactional logging. In many
938 cases we were adding the public cache key and then
939 logging a delete for the private key. This is worthless
940 because during rebuild we could not locate the previous
941 public-keyed entry. Now we assert that only public-keyed
942 entries can be logged to swap.state. storeSetPublicKey()
943 and storeSetPrivateKey() have been modified to log an
944 ADD or DEL when the key changes.
945 - Fixed storeDirClean bug. Needed to call
946 storeDirProperFileno() so the "dirn bits" get set.
947 - Fixed a storeRebuildFromDirectory bug. fullpath[] and
948 fullfilename[] were static to that function and did
949 not change when the "rebuild_dir" arg did. Moved these
950 buffers to the rebuild_dir structure.
951 - In storeRebuildFromSwapLog, we were calling storeRelease()
952 for cache key collisions. This only set the RELEASE_REQUEST
953 bit and did not clear the swap_file_number in the filemap or
954 in the StoreEntry, so the swap file could get unlinked later
955 when it was really released.
4e0f0471 956 - Fixed FTP so that ';type=X' specifically sets the HTTP reply
957 content-type and content-encoding (Henrik Nordstrom).
958 - Removed 'icon_content_type' configuration option. Content
959 types now taken from mime.conf (Henrik Nordstrom).
2a9b2b73 960 - Added additional memory malloc tracing and memory leak
961 detection. Use --enable-xmalloc-debug-trace configure
962 option and -m command line option (Henrik Nordstrom).
bcfbdc11 963
93169941 964Changes to squid-1.2.beta14 (Feb 6, 1998):
965
5471db88 966 - Replaced snmplib free() calls with xfree().
967 - Changed the 'net_db_name' hash table structure to
968 make it easier to move names from one network to another
969 (copied from 1.1 code).
93169941 970 - Filled in some of the config dump routines (dump_acl,
971 dump_acl_access).
972 - Full memory debugging option (--enable-xmalloc-debug-trace)
973 (Henrik Nordstrom).
974 - Filled-in and clarified many squid.conf comments (Oskar
975 Pearson).
976 - Fixed up handling of SWAP_LOG_DEL swap.state entries.
5471db88 977
f91834bf 978Changes to squid-1.2.beta13 (Feb 4, 1998):
f577e074 979
b4512acd 980 - NOTE: With this version the "swap.state" file format has
981 changed. Running this version for the first time will
982 cause your current cache contents to be lost!
f91834bf 983 - NOTE: this version still has the bug where we don't rewind
984 a swapout file and rewrite the swap meta data. Objects
985 larger than 8KB will be lost when rebuilding from the swap
986 files.
d04dd4bf 987 - Combined various interprocess communication setup functions
988 into ipcCreate().
989 - Removed some leftover ICP_HIT_OBJ things.
990 - Removed cacheinfo and proto_count() and friends; these are to
991 be replaced in functionality by StatCounters and 5/60 minute
992 average views via cachemgr.
993 - Fixed --enable-acltree configure message (Masashi Fujita).
994 - Fixed no reference to @LIB_MALLOC@ in src/Makefile.in
995 (Masashi Fujita).
996 - Fixed building outside of source tree (Masashi Fujita).
dbfed404 997 - FTP: Format NLST listings, and inform the user that the NLST
998 (plain) format is available when we find a LIST listing that we
999 don't understand (Henrik Nordstrom)
1000 - FTP: Use SIZE on Binary transfers, and not ASCII. The
1001 condition was inversed, making squid use SIZE on ASCII
1002 transfers (Henrik Nordstrom).
1003 - Enable virtual and Host: based acceleration in order to be
1004 able to use Squid as a transparent proxy without breaking
1005 either virtual servers or clients not sending Host: header
1006 the order of the virtual and Host: based acceleration needs
1007 to be swapped, giving Host: a higher precendence than virtual
1008 host (Henrik Nordstrom).
1009 - Use memmove/bcopy as detected by configure Some systems does
1010 not have memmove, but have the older bcopy implementation
1011 (Henrik Nordstrom).
6cf028ab 1012 - Completely rewritten aiops.c that creates and manages a pool
1013 of threads so thread creation overhead is eliminated (SLF).
1014 - Lots of mods to store.c to detect and cancel outstanding
1015 ASYNC ops. Code is not proven exhaustive and there are
1016 definately still cases to be found where outstanding disk ops
1017 aren't cancelled properly (SLF).
1018 - Changes to call interface to a few routines to support disk
1019 op `tagging', so operations can be cleanly cancelled on
1020 store_abort()s (SLF).
1021 - Implementation of swap.state files as transaction logs.
1022 Removed objects are now noted with a negative object size.
1023 This allows reliatively clean rebuilds from non-clean
1024 shutdowns (SLF).
1025 - Now that the swap.state files are transaction logs, there's
1026 now no need to validate by stat()ing. All the validation
1027 procedure does is now just set the valid bit AFTER all the
1028 swap.state files have been read, because by that time, only
1029 valid objects can be left. Object still need to be marked
1030 invalid when reading the swap.state file because there's no
1031 guarantee the file has been retaken or deleted (SLF).
1032 - An fstat() call is now added after every
1033 storeSwapInFileOpened() so object sizes can be checked. Added
1034 code to storeRelease() the object if the sizes don't match (SLF).
1035 - #defining USE_ASYNC_IO now uses the async unlink() rather than
1036 unlinkd() (SLF).
1037 - #defining MONOTONIC_STORE will support the creation of disk
1038 objects clustered into directories. This GREATLY improves disk
1039 performance (factor of 3) over old `write-over-old-object'
1040 method. If using the MONOTONIC_STORE, the
1041 {get/put}_unusedFileno stack stuff is disabled. This is
1042 actually a good thing and greatly reduces the risk of serving
1043 up bad objects (SLF).
1044 - Fixed unlink() in storeWriteCleanLogs to be real unlink()
1045 rather than ASYNC/unlinkd unlinks. swap.state.new files were
1046 being removed just after they were created due to delayed
1047 unlinks (SLF).
1048 - Disabled various assertions and made these into debug warning
1049 messages to make the code more stable until the bugs can be
1050 tracked down (SLF).
1051 - Added most of Michael O'Reilly's patches which included many
1052 bug fixes. Ask him for full details (SLF).
1053 - Moved aio_check_callbacks in comm_{poll|select}(). It was
1054 called after the fdset had been built which was wrong because
1055 the callbacks were changing the state of the read/write
1056 handlers prior to the poll/select() calls (SLF).
f09f5b26 1057 - Fixed ARP ACL memory leaks (Dale).
f577e074 1058 - Eliminated URL and SHA cache keys. Cache keys will always
1059 be MD5's now.
1060 - Fixed up store swap meta data.
1061 - Changed swap.state logs to a binary format.
f91834bf 1062 - The swap.state logs are written transaction-style.
d04dd4bf 1063
b5cfbd5b 1064Changes to squid-1.2.beta12 (Jan 30, 1998):
1065
b4512acd 1066 - Added metadata headers to cache swap files. This is an
1067 incompatible change with previous versions. Running this
1068 version for the first time will cause your current cache
1069 contents to be lost.
9fc0b4b8 1070 - -D_REENTRANT when linking with -lpthreads (Henrik Nordstrom)
1071 - Show symlink destinations as a hyperlink in FTP listings
1072 (Henrik Nordstrom)
3a4eaced 1073 - Fixed not allocating enough space for rewriting URLs with
1074 the Host: header (Eric Stern).
1075 - Year-2000 fixes (Arjan de Vet).
1076 - Fixed looping for cache hits on HEAD requests.
fc6dc767 1077 - Fixed parseHttpRequest() coredump for
1078 "GET http://foo HTTP/1.0\r\n\r\n\r\n"
9fc0b4b8 1079
9f802cb1 1080Changes to squid-1.2.beta11 (Jan 6, 1998):
1081
fd82d0b0 1082 - Fixed fake 'struct rusage' definition which prevented compling
1083 on Solaris 2.4.
1084 - Fixed copy-by-ref bug for request->headers in
1085 clientRedirectDone() (Michael O'Reilly).
812db943 1086 - Workaround for Solaris pthreads closing FD 0 upon fork()
1087 (Michael O'Reilly).
05fd71a7 1088 - Fixed shutdown bug with outgoing UDP sockets; we need to
1089 disable their read handlers.
1090 - For comm_poll(), use the fast 50 msec timeout only when
1091 USE_ASYNC_IO is defined.
1fbc6de3 1092 - Fixed pointer bug when freeing AS# ACL entries.
1093 - Fixed forgetting to reset Config.npeers to zero in free_peer().
0f6bdbfa 1094 - Fixed ICP bug causing excessive TIMEOUTs with sibling
1095 neighbors. We must call the ICP reply callback even for
1096 sibling misses.
1097 - Fixed some dnsserver-related reconfigure bugs. Need to
1098 use cbdataLock, etc in fqdncache.c. Also don't want to
1099 use ipcacheQueueDrain() and fqdncacheQueueDrain().
1100 - Fixed persistent connection bug. We were incorrectly
1101 deciding that non-200 replies without content-length
1102 would not have a reply body.
1103 - Fixed intAverage() precedence bug.
1104 - Fixed memmove() 'len' arg bug.
1105 - Changed algorithm for determining alive/dead state of peers.
1106 Instead of using a fixed number of unacknowledged ICP
1107 replies, it is now based on timeouts. If there are no ICP
1108 replies received from a peer within 'dead_peer_timeout'
1109 seconds, then we call it dead.
1110 - Added calls to getCurrentTime() in
1111 comm_{select,poll}_incoming() when ALARM_UPDATES_TIME is not
1112 being used.
1113 - Fixed shutdown bug when the incoming and outgoing ICP socket
1114 is the same file descriptor.
e970f357 1115 - Added buffered writes for storeWriteCleanLogs() (Stewart
1116 Forster).
1117 - Patches for Qnx4 (Jean-Claude MICHOT).
1118 - Fixed returning void functions which seems to be a GCC-ism.
e5f4e1b0 1119 - New configure script options (Henrik Nordstrom):
1120 --enable-new-storekey=[sha|md5(|url)] (was --enable-hashkey)
1121 --enable-acltree
1122 --enable-icmp
1123 --enable-delay-hack
1124 --enable-useragent-log
1125 --enable-kill-parent (this should be named -hack)
1126 --enable-snmp
1127 --enable-time-hack
1128 --enable-cachemgr-hostname[=hostname] (new)
1129 --enable-arp-acl (new)
1130 - Added Doug Lea malloc-2.6.4 to the distribution, so that
1131 people easily can try a decent malloc package if they syspect
1132 their malloc is broken. --enable-dlmalloc (Henrik Nordstrom).
1133 - Made XMALLOC_DEBUG_COUNT working again. Requires a small stub
1134 function (Henrik Nordstrom).
1135 - Removed top-level Makefile. People must now run 'configure'
1136 before 'make'.
714ace98 1137 - Fixed checkFailureRatio() implementation.
82b3c7d9 1138 - Made 'squid -z' behave like the 1.1 version.
e5f4e1b0 1139
fd82d0b0 1140
ab9a3f7e 1141Changes to squid-1.2.beta10 (Jan 1, 1998):
1142
1143 - Fixed content-length bugs for 204 replies, 304 replies,
1144 and HEAD requests (Henrik Nordstrom).
1145 - Fixed errorAppendEntry() bug in gopherReadReply().
1146 - Basic support for FTP URL typecodes (;type=X).
9c965c1b 1147 - Support for access controls based on ethernet MAC addresses
ab9a3f7e 1148 (Dale).
1149 - Initial URN support; see
1150 http://squid.nlanr.net/Squid/urn-support.html
1151 - Fixed client-side persistent connections for objects with
1152 bad content lengths (Henrik Nordstrom).
1153 - Fixed bad call to storeDirUpdateSwapSize() for objects which
1154 never reach SWAPOUT_DONE state.
68e3a9df 1155 - Fixed up poll() #defines in squid.h (Stewart Forster).
1156 - Changed poll() timeout from 1000 msec to 50 msec for
1157 better performance under low load (Stewart Forster).
e7a1fde6 1158 - Changed storeWriteCleanLogs() to write objects in the LRU
1159 list order instead of the random hash table order.
109ff6af 1160 - Fixed FTP bug when data socket connections fail or timeout.
1161 - Reuse FTP data connection when possible (Henrik Nordstrom).
1162 - Added configure options (Henrik Nordstrom)
1163 --enable-store-key=sha|md5
1164 --enable-xmalloc-statistics
1165 --enable-xmalloc-debug
78743365 1166 --enable-xmalloc-debug-count
1167 --async-io
109203bf 1168 - Fixed confusing with the use/meaning of ERR_CANNOT_FORWARD
1169 by creating ERR_FORWARDING_DENIED and changing the
1170 content of the ERR_CANNOT_FORWARD text.
4e9c07c1 1171 - Fixed pipeline request bug from using strdup() (Henrik
1172 Nordstrom).
1173 - Call clientReadRequest() directly instead of commSetSelect()
1174 for pipelined requests (Henrik Nordstrom).
1b02b5be 1175 - Fixed 4k page leak in icpHandleIMSReply();
1176 - Renamed 'icp*' functions to 'client*' names in client_side.c.
e7a1fde6 1177
b90a0f8d 1178Changes to squid-1.2.beta8 (Dec 2, 1997):
1179
eae03fc8 1180 - Fixed accessLogLog() to log ident from Proxy-Authorization
1181 request header (BoB Miorelli).
226f9ba2 1182 - Fixed #includes, prototypes, etc. in SNMP source files.
1183 - Moved 'POLLRDNORM' and 'POLLWRNORM' macro checks from
1184 include/config.h.in to src/squid.h
1185 - Moved 'num32' typedefs from src/typedefs.h to
1186 include/config.h.in.
1187 - Moved snmplib/md5.c to lib/md5.c.
1188 - Added MD5 cache key support.
1189 - Removed xmalloc() return check in uudeocde.c
1190 - Added 'ifdef' support to cf_gen.c for optional code (e.g. SNMP)
1191 - Changed 'client' program to provide easier cache manager access,
1192 e.g.: 'client mgr:info'
1193 - Fixed 'client' to send 'Connection' instead of 'Proxy-Connection'
1194 for simulated keep-alive requests.
1195 - Removed 'fd' arg from clientProcess* functions.
9e3468d5 1196 - Fixed bugs from using errorSend() on persistent/pipelined
226f9ba2 1197 client connections. A latter request should not be allowed to
1198 write to the client fd until the current request completes.
1199 Now use errorAppendEntry() for such situations.
1200 - Fixed content-length bugs. We were using content-length == 0
1201 to also indicate a lack of content-length reply header. But
1202 'content-length: 0' might appear in a reply, so now use -1 to
1203 indicate that no content length given.
1204 - Split up clientProcessRequest() into smaller chunks so it
1205 might be easier to follow.
1206 - renamed various client_side.c functions to start with 'client'
1207 instead of 'icp'.
1208 - Fixed a 'cbdata leak' from the comm.c close handlers.
1209 - Fixed a 'cbdata leak' from the comm.c connect routines.
1210 - Fixed comm_select() and comm_poll() to stop looping on the
1211 incoming HTTP/ICP sockets. If there are fewer than 7 FD's
1212 ready for I/O, the incoming sockets might not get service, so
1213 comm_select() would be called for up to 7 times until the
1214 'incoming_counter' was incremented enough to trigger a call
1215 to comm_select_incoming(). Now we make sure
1216 comm_select_incoming() gets called if select returns less
1217 than 7 ready FD's.
9e3468d5 1218 - Added errorpage '%B' token to generate FTP URLs with a '%2f'
1219 inserted at the start of the url-path. calls ftpUrlWith2f().
1220 (Henrik Nordstrom).
226f9ba2 1221 - Changed fqdncache.c to use LRU double-linked list instead of qsort()
1222 for replacement and cachemgr output.
1223 - Changed ipcache.c to use LRU double-linked list instead of qsort()
1224 - Changed hash_insert() and hash_join() to return void.
1225 for replacement and cachemgr output.
1226 - Moved StoreEntry->method member to MemObject->method.
1227 - Made StoreEntry->flags 16 bits.
1228 - Made StoreEntry->refcount 16 bits.
1229 - Changed URL-based public cache key to always include the request
1230 method.
eae03fc8 1231
95bc9f0b 1232Changes to squid-1.2.beta7 (Nov 24, 1997):
1233
6a11653c 1234 - Fixed poll() for Linux (David Luyer).
1235 - SHA optimizations (David Luyer).
1236 - Fixed errno clashes with macro on Linux (David Luyer).
1237 - Fixed storeDirCloseSwapLogs(); logs might not be open.
1238 - Fixed storeClientCopy2() bug. Detect when there is
1239 no more data to send for objects in STORE_OK state.
19ee64b1 1240 - Fixed FTP truncation bug when ftpState->size == 0, e.g.
1241 especially directory listings.
95bc9f0b 1242 - Mega FTP fix from Henrik Nordstrom. A better job of
1243 implementing the '%2f' hack.
1244 - Fixed some pipelined request bugs. storeClientCopy() was
1245 being given the wrong StoreEntry, and we had a race condition
1246 which is now handled by storeClientCopyPending().
99077fe6 1247 - Added initial SNMP support.
6a11653c 1248
2c9b45c9 1249Changes to squid-1.2.beta6 (Nov 13, 1997):
1250
1b5516d3 1251 - Fixed Authorized responses getting swapped out when they
1252 don't have Proxy-Revalidate reply header.
1253 - Fixed Proxy Authentication support. We never sent back
1254 a 407 reply, and were incorrectly incrementing the passwd
1255 before comparing it.
1256 - Fixed stat()ing pathnames for default values before parsing
1257 config file (Ron Gomes).
1258 - Fixed logging request and response headers on separate lines
1259 (Ron Gomes).
1260 - Fixed FTP Authentication message (Henrik Nordstrom).
1261 - Changed Proxy Authentication to trigger a reread of the passwd
1262 file if a password check fails (Henrik Nordstrom).
1263 - Changed FTP to retry the first CWD with a leading slash if it
1264 fails without one.
1265
8c17a569 1266Changes to squid-1.2.beta5 (Nov 6, 1997):
1267
90045285 1268 - Track the 'keep-alive ratio' for a peer as the ratio of
1269 the number of replies including 'Proxy-Connection: Keep-Alive'
1270 compared to the number of requests sent. If the peer does
1271 not support Persistent connections then this ratio will tend
1272 toward zero. If the ratio is less than 50% after 10 requests
1273 then we'll stop sending Keep-Alive.
8c3994aa 1274 - Proper support for %nn escapes in FTP, and numerous
1275 other fixes (Henrik Nordstrom).
1276 - Support for Secure Hash Algorithm and framework for other
1277 hash functions as cache keys.
1278 - Fixed SSL snprintf() bug which broke SSL proxying.
1279 - Fixed store_dir swap log bug from reconfigure (SIGHUP).
8c17a569 1280 - Fixed LRU Reference Age bug. The arg to pow() must be
8031bd43 1281 minutes, not seconds.
90045285 1282
9ddfb255 1283Changes to squid-1.2.beta4 (Oct 30, 1997):
1284
a493f974 1285 - Fixed DST bug in rfc1123.c
1286 - Changed default http_accel_port to 80.
1287 - added errorCon() as a ErrorState constructor function
1288 (Max Okumoto).
1289 - Added ERR_FTP_FAILURE message for ftpFail().
1290 - For FTP, the timeout callback must be moved to the 'data'
1291 descriptor when data transfer begins. Otherwise we are
1292 likely to get a timeout on the control descriptor.
1293 - Fixed double-free bug in httpRequestFree().
1294 - Fixed store_swap_size counting bug in storeSwapOutHandle().
1295
409a6aad 1296Changes to squid-1.2.beta3 (Oct 29, 1997):
1297
1298 - Initialize _res.options to RES_DEFAULT in dnsserver.c.
1299 - Fix assertions which assumed 4-byte pointers.
1300 - Fix missing % in fqdncache.c snprintf().
1301
5a2d610b 1302Changes to squid-1.2.beta2 (Oct 28, 1997):
1303
8c3994aa 1304 - Fixed aiops.c and async_io.c so that they actually compile
f5b8bbc4 1305 with USE_ASYNC_IO (Arjan de Vet).
1306 - Fixed errState->errno causing problems with some macros
1307 (Michael O'Reilly).
d287f51e 1308 - Fixed memory leaks in pconn.c (Max Okumoto).
0866009b 1309 - Enhanced 'client' program with 'ping' behaviour (Ron Gomes).
272547b5 1310 - Fixed InvokeHandlers() from calling memCopy() for ALL
1311 store_client's with callbacks. A store_client might be reading
1312 from disk.
5a2d610b 1313 - Rewrote storeMaintainSwapSpace(). No longer will we scan one
272547b5 1314 bucket at a time. Instead we'll maintain a single LRU
1315 list. When an object is 'touched' we move it to the
1316 top of this list. When we need disk space, we delete
1317 from the bottom.
5a2d610b 1318 - Removed storeGetSwapSpace().
f5b8bbc4 1319
871f0b8a 1320Changes to squid-1.2.beta1 ():
1321
1322 - Reworked storage manager to not keep objects in memory during
1323 transit. In other words, no separate NOVM distribution.
1324 - Lots of cleanup and debugging for beta release.
1325 - Use snprintf() everywhere instead of sprintf().
1326 - The 'in_memory' hash table has been replaced with a
1327 doubly-linked list. New objects are added to the head of
1328 the list. When memory space is needed, old objects are
1329 purged from the tail of the list.
1330
0edfe7a2 1331Changes to squid-1.2.alpha7 ():
1332
c4958532 1333 - fixes fixes fixes.
1334 - Made Arjan's PROXY_AUTH ACL patch standard.
0edfe7a2 1335
8905b90c 1336Changes to squid-1.2.alpha6 ():
1337
6684fec0 1338 - Simpler cacheobj implementation.
6605655c 1339 - persistent connection histogram
8872e1f8 1340 - SERVER-SIDE PERSISTENT CONNECTIONS:
1341 - Added pconn.c
1342 - Addec Cofig.Timeout.pconn; default 120 seconds
1343 - Added httpState->flags
1344 - Added flags arg to httpBuildRequestHeader()
1345 - Added HTTP_PROXYING and HTTP_KEEPALIVE flags
1346 - Added 'Connection' to allowed HTTP headers (http-anon.c)
1347 - Added 'Proxy-Connection' to allowed HTTP headers
1348 (http-anon.c)
a7736231 1349 - Merged proxyhttpStart() with httpStart() and created
8872e1f8 1350 new httpBuildState().
1351 - New httpPconnTransferDone() detects end-of-data on
1352 persistent connections.
6684fec0 1353
88738790 1354Changes to squid-1.2.alpha5 ():
1355
1356 - New configuration system. Everything is generated from
1357 'cf.data.pre', including the main parser, setting defaults,
1358 outputting current values, and freeing memory.
1359 This also involved moving some of the local data structures
1360 (e.g. struct _acl *AclList in acl.c) to the Config
1361 structure. (Max Okumoto)
1362 - No more '/i' for regular expressions. Now insert a '-i'
1363 to switch to case-insensitive. Use '+i' for case-sensitive.
1364 - When you have a variable named the same as its type, sizeof()
1365 gets the wrong one (fde).
1366 - Need to flush unbuffered logs before fork().
1367 - Added two fields swap log: refcount and e->flag.
1368 - Removed all the .h files for each .c file. Now #include stuff
1369 is in either: defines.h, enums.h, typedefs.h, structs.h,
1370 or protos.h, globals.h. This greatly reduces dependencies
1371 between the various source files.
1372 - globals.c is generated from globals.h by a Perl script.
8ee3ca2c 1373 - Started customizable error texts.
88738790 1374
97f674c8 1375Changes to squid-1.2.alpha4 ():
1376
ec973719 1377 - New MIME configuration, regular expression based
1378 - Added request_timeout config option
1379 - Multiple HTTP sockets (Lincoln Dale).
1380 - Moved 'fds_are_n_free' check to httpAccept().
1381 - s/USE_POLL/HAVE_POLL/; make poll() default if available.
7e49f700 1382 - Changed storeRegister to use offsets and make immediate
1383 callbacks if appropriate.
1384 - Removed icpDetectClientClose(). Some of that functionality
1385 goes into clientReadRequest() and the rest into
1386 httpRequestFree().
b1b387d1 1387 - Moved IP lookups to commConnect stuff.
1388 - Added support for retrying connect().
858164fc 1389 - New inline debug() macro (David Luyer).
e174e0fe 1390 - Replace frequent gettimeofday() calls with alarm(3) based
1391 clock. Need to add more gettimeofday() calls to get back
a59968c7 1392 high-resolution timestamp logging (Andres Kroonmaa).
0153d498 1393 - Added support for Cache-control: proxy-revalidate;
1394 based on squid-1.1 patch from Mike Mitchell.
ec973719 1395
3b08d32d 1396Changes to squid-1.2.alpha3 ():
1397
1398 - Implemented persistent connections between clients and squid.
1399 - Moved various FD tables (comm.c, fdstat.c, disk.c) to a single
1400 table in fd.c.
1401 - Removed use of FD as an identifier in certain callback
1402 operations (ipcache, fqdncache).
1403 - General code cleanup.
1404 - Fixed typedefs for callback functions.
1405 - Removed FD lifetime/timeout dichotomy. Now we only have
1406 timeouts, however the lifetime concept/keyword may still
1407 linger in certain places.
1408 - Change Makefile 'realclean' target to 'distclean'
1409 - Changed config file parsing of time specifications to use
1410 parseTimeLine().
1411 - Removed storetoString.c
1412
1413Changes to squid-1.2.alpha2 ():
74cebec0 1414
1415 - Merged squid-1.1.9, squid-1.1.10 changes
1416
7b41ec97 1417Changes to squid-1.2.alpha1 ():
1418
1419 - Unified peer selection algorithm.
75e88d56 1420 - aiops.c and aiops.h are a threaded implementation of
1421 asynchronous file operations (Stewart Forster).
1422 - async_io.c and async_io.h are complete rewrites of the old
1423 versions (Stewart Forster).
6ad85e8a 1424 - Rewrote all disk file operations of squid to support
75e88d56 1425 the idea of callbacks except where not required (Stewart
1426 Forster).
75e88d56 1427 - Background validation of 'tainted' swap log entries (Stewart
1428 Forster).
1429 - Modified storeWriteCleanLog to create the log file using the
1430 open/write rather than fopen/printf (Stewart Forster).
1431 - Added the EINTR error response to handle badly interrupted
1432 system calls (Stewart Forster).
6ad85e8a 1433 - UDP_HIT_OBJ not supported, removed.
1434 - Different sized 'cache_dirs' supported.
75e88d56 1435
e924600d 1436==============================================================================