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