From: Amos Jeffries Date: Tue, 14 Oct 2008 12:57:32 +0000 (+1300) Subject: Drop ancient TODO list into wiki instead X-Git-Tag: SQUID_3_2_0_1~1406 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=3fc28b77fa11f514521ab6bdd9664f4bb3db2cdf;p=thirdparty%2Fsquid.git Drop ancient TODO list into wiki instead --- diff --git a/TODO b/TODO deleted file mode 100644 index 8b83e58a29..0000000000 --- a/TODO +++ /dev/null @@ -1,193 +0,0 @@ -This TODO list is no longer accurate. For more updated Squid-3 plans see: - http://wiki.squid-cache.org/RoadMap/Squid3 - - -Squid-3.0: - - Feature freeze: - - - overlapping helper feature implementation (plain or stateful or both). - - Other? - - - Windows port (Merging in process, won't delay 3.0). - - Done items: - - - epoll linkage. - - reply_body_max_size syntax cleanups. (done) - - Other sponsored work that needs to get into mainline sooner rather - than later (None known of - RC). - - Update automake and autoconf on squid-cache.org for the squid-3 CVS snapshot generation. (done) - - ESI client side streams support framework (done). - - ESI (done). - - Authentication tidyups in proxy_auth acl managagement (Done). - - Appropriate parts of rproxy (Done). - - Some kind of Range support to at least the level of 2.5 and earlier (Done). - - Someone other than Robert to review the draft squid 3 release notes (in CVS already). (done) - - -Squid-3.1 - - - always/never direct syntax cleanups. - - refactoring of acl driven types to reduce amount of duplicated - code (acl_check, acl_tos, acl_address, acl_size_t, ...) - - Go over the old TODO (below) and sort out what has - o) Been done - o) Needs to be done, and when - o) Can be ignored - - ETag caching (???) - - Customized logging capabilities - - External logging - - header filtering improvements (bug #601) - - Generalize socket binding to allow for multipe ICP/HTCP/SNMP sockets - (get rid of udp_incoming_address) (???) - - Done Items: - - - IPv6 - - Other devel.squid-cache.org projects (Done. some anyway) - - -Later: - - - Rework the store API like planned - - Improved event driven comm code - - Buffer management (required by store API and comm code improvements) - - Improved reply processing to not reparse the reply headers several - times - - Implement HTCP authentication - - Log HTCP queries somewhere, like htcp_query.log - - There are various places where ICP means ICP/HTCP, and - other places where it does not. For example, cachemgr 'counters' - stats like icp.pkts_sent count only ICP. However, in 'peer_select' - stats, ICP does include HTCP as well. - - - - -****************************************************************************** -Our OLD Todo List, still containing some interesting items. -****************************************************************************** - -() dont re-sibling requests which came from a sibling -() - -(1) is high priority, (5) is low priority -(**) Means we need this for the real 1.2 release -============================================================================== - -(1) A customizable cache replacement policy. Ugh, this could be - interesting since we just optimized the LRU replacement with a - doubly-linked list. - -(2) be more persistent in forwarding requests; return fewer error pages -(2) Fix some problems with peer-selection. - - An orderd list of siblings to try. - - Hash function load balancing -(2) Calculate Content-Length for multipart range replies (AR) - -(3) Efficient public peer access control *without ACLs* - Bill Wichers - Dave Zarzycki - # distant_peer_deny (icmp rtt) (hops) - # If the ICP client is farther than "z" hops away, - # or if more than y% of pings to the client exceed - # x milliseconds, then deny. - distant_peer_deny 200 75 10 -(3) deny/allow tags for HTTP header fields (AR) -(3) What to do about ACL's and URL escaping? -(3) Review RFC 2068 and RFC 2109 for header handing, especially - Cache-Control. - -(4) ** Everywhere that we use 'pattern' or such, use ACL elements instead. - stoplist_pattern, refresh_pattern, ... (DW) -(4) Refresh based on content types. This means we'll need an enum of - known content types added to StoreEntry. Unknown types will lose. -(4) Write binary headers as metadata? -(4) HTML-escape special characters in errorConvert(). - -(5) X-Proxy-hops header? -(5) internalize redirectors? -(5) #ifdefs to disable IP caching -(5) REST for failed ftp transfers. -(5) MD5 acl type -(5) Custom X-Forwarded-For - -MOVED UP TO CURRENT LISTS: -(5) Bind HTTP/ICP sockets to multiple interfaces -(3) ETag support (makes metadata bigger--ack!) -(5) For _popular_ objects, return hits if known to be stale, but then - initiate an IMS/refresh in the background. - - -DONE: -(2) Fix some problems with peer-selection. - - Allow for 'backup' parents -(5) return "ERR_TOO_LARGE" messages for replies with - content-lengths larger than some limit. -(3) hit metering -(5) Customizable access logging. -(3) LDAP support. See http://miso.wwa.com/~donley/ and - Clayton Donley -(5) Inline DNS queries with native resolver calls. -+ s/sprintf/snprintf/g -+ Write the text for all the error message files -+ fix all the assert(!ERR_FOO) placeholders -+ Finish hacking at storeCopy() to achieve in-memory sliding window - for objects being retrieved. -+ make USE_PROXY_AUTH standard -+ single linked list for disk LRU replacement -+ Incorporate Pelletier's latest retry patch for 1.1 -(3) URLs --> MD5? -(1) reconfigure (SIGHUP) causes problems with Config.cacheSwap.swapDirs[]. -(1) I think we're assuming persistent connections and not looking at - the reply headers. -(2) Write src/store_key_md5.c and lib/md5.c -(2) SNMP interface -(5) convert ipcache/fqdncache to double-linked list - and lose qsort() calls. -(3) AS # routing - - whois -h whois.ra.net '\!gAS194' - - Stevens V2 Ch.18 -(3) SIGHUP should reread error text files -(4) support ftp://host/pub;type=d -(5) should we write clean store logs from the double-linked list so - that they are sorted in order of last reference? Then upon - restart we won't have to worry about the list being unsorted - and causing problems with the LRU magic value. -(3) ** Make checkFailureRatio() work again. (DW) -(2) ** copy over -z semantics from 1.1; don't automatically wipeout - cache (DW) -(3) ** Make swap.state binary with fixed-size cache keys (AR) -(3) ** Make sure every squid.conf option has documentation (??) -(3) ** Store cache key and other metadata in swap files (KA) -(3) ** Finish implementing the *_dump() functions in cache_cf.c (DW) -(2) ** Fix cachemgr.cgi. It doesn't understand some of the new - output formats. (??) -(2) ** Add "Squid" trailer to all error messages. (AR) -(2) ** copy over 'test_reachability' from 1.1 (DW) -(2) ** we don't properly handle the HTTP/1.1 'Connection' header (KA) -(2) ** Code cleanup: (KA) - - Make sure the lib/*.c files do not use printf/fprintf. - - Replace bcopy with xmemcpy -(4) ** FTP PUT (KA) -(1) SSL doesn't work with Proxy Authentication -(3) HTTP Header todo list (AR) -(5) replace "for" loops in md5.c with memcpy and memset -(3) ** shrink-able memory pools (AR) -(3) ** request-range (AR) -(4) ** Double check that MemBuf.size is used correctly everywhere (AR) -(3) 'no_cache' access list for specifing objects which should not - be cached. -(3) Full request headers for CONNECT requests. -(1) ** Send full HTTP requests in ICP messages (DW) -(2) Track cache keys (MD5) in memory utilization -(3) Resource limits. -(3) Arjan's external proxy auth patch is at - http://www.iae.nl/users/devet/squid/proxy_auth/ -(3) In some situations, a private-key reply needs to eject a - public-key cached object. For example when an object is - first cachable, but later becomes uncachable. -(4) Configurable proxy-auth realm -(4) Configurable FQDN cache size