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