Henrik Nordström's Squid work -> Historic Secion
Historic section
Here I keep very old notes and patches, mostly to keep a complete
record of what I have done in Squid. This material is of limited use
unless you still run a very old version of Squid as almost everything
is incorporated into the base distribution (and if you are running a
version this old, you should consider upgrading).
A patch becomes historic when there has been a new major release (for example 1.0 to 1.1) and development is continues in yet another release (1.2).
Historic notes
-
Future plans for IMS support
This is some notes I wrote, about things to do when implementing
If-Modified-Since support in Squid. I never got any time to implement
more than a very crude support (which was done before I wrote this
note).
Historic patches
-
1.1.alpha4: Basic authentication for ftp
This is a migration of my beta11 patch.
Use basic authentication on non-anonymous ftp requests
without a password. This is to avoid having the password
in cleartext all over the cache... (cached objects, status
pages, log files,...). A request on the form ftp://user@host/...
needs to be authenticated with basic authentication (login+password).
-
1.0.beta17: Enable .. on non anonymous ftp
This patch enables .. on the "root" directory on non-anonymous
ftp. .. is needed to get to parent directory from the home
directory. Note:Netscape can't handle
relative URLs containing .. and ftp proxying correctly
-
1.0.beta16: Someting related to SSL tunneling
-
1.0.beta16: Unregister DNS lookup on comm_close
This is a patch to make ipcache.c a bit more tolerant to internal
error. Currently ipcache depends on that all pending requests are
correctly aborted before comm_close. This patch makes sure that
any pending requests are unregistered on comm_close by installing
a close_handler for each request (the handler is removed when the
request is done/cancelled)
-
1.0.beta16: Usage of freed ipcache_entry
When a request is aborted, the pending ipcache entry
might get deleted, even if it is still active waiting
for a reply from the dnsserver.
-
1.0.beta16: Coredump in neighborsUdpAck
This bug was found (and fixed) by "Miguel A.L. Paraz"
<map@iphil.net>. This patch is a cleaned up version
of his fix.
-
1.0.beta15: A entry without a object is not valid
This is a patch to make store.c a bit more tolerant to internal
errors. This makes sure that objects without any data (no request
pending, no disk object, and no memory object) is never considered
a valid object to send. This should not happen, but it did in
beta15...
-
1.0.beta15.close_handlers.patch
-
1.0.beta15.url_no_slash.patch
-
1.0.beta14.ipcache_expired.patch
-
1.0.beta14.debugging.patch
-
1.0.beta14: Remove log-last-clean on startup
It is not safe to let log-last-clean stay after accepting new
request. If Squid crashes (or is killed) during rebuild it may
mistakenly think that it can rebuild in fast mode when some of
the swapfiles may have been reused.
-
1.0.beta11: Basic authentication for ftp (to appear in 1.1)
Use basic authentication on non-anonymous ftp requests
without a password. This is to avoid having the password
in cleartext all over the cache... (cached objects, status
pages, log files,...). A request on the form ftp://user@host/...
needs to be authenticated with basic authentication (login+password).
-
1.0.beta11: Corrected generated mime headers
The generated mime headers on error pages was
not correct (most of the header names was wrong).
-
1.0.beta11: A migration of my IMS patch below
This also contains a small fix. Objects was swapped in on IMS,
even if no-cache was set.
-
1.0.beta11: The result from inet_addr should be compared with
SQUID_INADDR_NONE and not -1... (this broke dnsserver on
Linux/AXP)
-
1.0.beta11: Release replaced objects
When objects got replaced in the store, the old object
was left in the cache if it was not in use
-
1.0.beta9: Make acl domain match the end of the host name
This patch makes it possible to allow/block certain domains,
even if the same string (i.e. .com) is part of another domain
that should not be affected.
It also makes it possible to block all IP addresses (not FQDN) by
using "acl IP domain 0 1 2 3 4 5 6 7
". This matches
all host names ending in a number (i.e. only IP addresses).
-
1.0.beta9: Netmask guessing was broken (not working at all)
-
1.0.beta9: The mime headers patch below reintroduced a old bug
I should have copied the original code istead of writing new code...
(I thought it was trivial to find the end of the headers...)
-
1.0.beta9: Moved icpRead, icpWrite to comm_read, comm_write
icpRead and icpWrite is general non blocking read/write functions
that are used in several modules, not only icp. By moving them to
comm the hacks needed to keep tack of the read/write state is not
needed anymore, and it opens up the possibility to implement the
timeout parameter.
-
1.0.beta9: Delay deletetion of objects during store rebuild
-
1.0.beta9: More cleanup in icp.c
-
1.0.beta9: Cleanup freeing of buf in icp.c (moved to
icpStateFree)
-
1.0.beta8: IMS on cached objects.
This requires the
client close and
mime patches
below
This works by bringing in the headers from disk, then calculate if
the object is modified or not and takes appropriate action:
- If NOT modidied:
- send 304 response
- If modified
- send as a cache HIT (send the object)
-
1.0.beta8: Cleaned up client close handling
Moved icp storeUnregister (and unlock) from after each comm_close
to the close handler (icpStateFree) making the reference from a icpState
to a storeEntry to be automatically cleared when the client connection
is closed.
-
1.0.beta8: Store rebuilding tuning
Store rebuilding stopped temporarily as soon as it encounters
a "invalid" entry.
-
1.0.beta8: Splitted and large requests fails
- Parsing of incomplete requests (when sent in more than one packet)
can fail due to missing string terminator at the end of received data.
- The handling of large request had a off by one error, causing requests
to fail when the first buffer was filled.
-
1.0.beta8: More centralized handling of mime headers
- Created mime functions to find end and size of headers.
- Moved the functionality to parse the HTTP headers from
httpProcessReplyHeader to a new function that can be used separately
(i.e. on cached objects).
-
1.0.beta8.alpha: More Cache reload?
-
1.0.beta8.alpha: Cache reload?
-
1.0.beta8.alpha: IMS GET on cached objects?
-
1.0.beta8.alpha: Lost statistics on used store entries
-
1.0.beta8.alpha: Log when client closes connection
-
1.0.beta8.alpha: MAlloc statistics?
-
1.0.beta8.alpha: Some clients (Netscape) closes the connection after reading Content-Length bytes.
-
1.0.beta8.alpha: Solaris2.5 returns socket buffer sizes == 0
-
1.0.beta8.alpha: Fixes some compilation errors on HP-UX 9.01/s400
-
1.0.beta8.alpha: A _ to much in squid.h disabled signal.h
-
1.0.beta7: Updated cacheable HTTP codes
-
1.0.beta7: Allow IP ACLs to specify a range. Allow hostnames and not only dotted IP.
-
1.0.beta7: Allow more than one ftpget server on one machine
-
1.0.beta7: Write pid file as root (if started as root)
-
1.0.beta7: Minor changes related to http_stop and ttl_pattern
-
1.0.beta7: More logging + fixed related to TCP/IP port failures
-
1.0.beta7: Log failure to get TCP/IP port
-
1.0.beta6: Allow the request to arrive in several packages.
-
1.0.beta6: Add cache object /stats/memorymap on HP-UX
-
1.0.beta6: Always look for a port after :, even if none specified.
-
1.0.beta6: Do not issue REST unless needed
This patch is revoked. REST should be issued to determine
if REST is implemented or not.
-
1.0.beta6: A continuation of my patch below.. (some more fixes)
-
1.0.beta6: Some small bug fixes and clean up to data connection handling in ftpget
-
1.0.beta5: A small bug fix to the main PASV/PORT patch below
-
1.0.beta5: Check if the old data connections is closed before issuing PASV(or PORT)
-
1.0.beta5: Moved README to the bottom
-
1.0.beta5: Don't issue PASV or PORT if a data connection is already open
-
1.0.beta5: Netscapes buggy FTP urls without slash broken by ftpserver
-
1.0.beta5: Patch to aborted CONNECT request.
Aborted CONNECT request didn't abort the server connection,
and the server connection continued to reference the client
filedescriptor, this eventually caused a fatal error since
the server connection could trash a later use of the same
filedescriptor.
-
1.0.beta5: Always quick_abort private requests
-
1.0.beta5: Only send CONNECT response header once
-
1.0.beta5: FTP URLs with space (%20) and other special characters
-
1.0.beta5: Do correct parsing of FTP URLs
-
1.0.beta2: Workaround to a bug in HP-UX sscanf
-
1.0.beta2: The magic logfilename "none" for no logging
-
1.0.beta2: Couldn't use port 80 since it changed used id
-
1.0.alpha16: Debugged SSL code migrated to alpha16
-
1.0.alpha15: Debugged SSL code.
-
1.0.alpha15: Instant restart (rebuild cache in background)
-
1.0.alpha9: Enable the use of ports in ftp URLs
- Parse and use port in ftp URLs
- Send debug level 26 to ftpget
- -P option to ftpget, for port
-
1.0.alpha9: Adds the configuration directive negative_dns
-
1.0.alpha9: Allow large requests. Adds request_size to cache.conf
-
1.0.alpha5: Don't cache objects with invalid content-lenght
-
1.0.alpha5: ftp_passwd config directive
(unified,
standard)
-
1.0.alpha4: Lots of small things
(unified,
standard)
© 1996 Henrik Nordström