TODO
上传用户:liugui
上传日期:2007-01-04
资源大小:822k
文件大小:5k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. Our Todo List
  2. () dont re-sibling requests which came from a sibling
  3. ()
  4. (1) is high priority, (5) is low priority
  5. (**) Means we need this for the real 1.2 release
  6. ==============================================================================
  7. (1) A customizable cache replacement policy.  Ugh, this could be
  8. interesting since we just optimized the LRU replacement with a 
  9. doubly-linked list.
  10. (2) be more persistent in forwarding requests; return fewer error pages
  11. (2) Fix some problems with peer-selection.
  12. - Allow for 'backup' parents 
  13. - An orderd list of siblings to try.  
  14. - Hash function load balancing
  15. (2)     Calculate Content-Length for multipart range replies (AR)
  16. (3) hit metering
  17. (3) ETag support (makes metadata bigger--ack!)
  18. (3) Efficient public peer access control *without ACLs*
  19. Bill Wichers <billw@unix0.waveform.net>
  20. Dave Zarzycki <zarzycki@ricochet.net>
  21. # distant_peer_deny (icmp rtt) (hops)
  22. #    If the ICP client is farther than "z" hops away,
  23. #    or if more than y% of pings to the client exceed
  24. #    x milliseconds, then deny.
  25. distant_peer_deny   200  75  10
  26. (3)     deny/allow tags for HTTP header fields (AR)
  27. (3) LDAP support.  See http://miso.wwa.com/~donley/ and
  28. Clayton Donley <qa1049@ilms04.cig.mot.com>
  29. (3) What to do about ACL's and URL escaping?
  30. (3) Review RFC 2068 and RFC 2109 for header handing, especially
  31. Cache-Control.
  32. (4) ** Everywhere that we use 'pattern' or such, use ACL elements instead.
  33. stoplist_pattern, refresh_pattern, ...  (DW)
  34. (4) Refresh based on content types.  This means we'll need an enum of
  35. known content types added to StoreEntry.  Unknown types will lose.
  36. (4) Write binary headers as metadata?
  37. (4) HTML-escape special characters in errorConvert().
  38. (5) X-Proxy-hops header?
  39. (5) internalize redirectors?
  40. (5) For _popular_ objects, return hits if known to be stale, but then
  41. initiate an IMS/refresh in the background.
  42. (5) #ifdefs to disable IP caching
  43. (5) REST for failed ftp transfers.
  44. (5) Customizable access logging.
  45. (5) Inline DNS queries with native resolver calls.
  46. (5) MD5 acl type
  47. (5) return "ERR_TOO_LARGE" messages for replies with
  48. content-lengths larger than some limit.
  49. (5) Bind HTTP/ICP sockets to multiple interfaces
  50. (5) Custom X-Forwarded-For
  51. DONE:
  52. + s/sprintf/snprintf/g
  53. + Write the text for all the error message files
  54. + fix all the assert(!ERR_FOO) placeholders
  55. + Finish hacking at storeCopy() to achieve in-memory sliding window
  56.   for objects being retrieved.
  57. + make USE_PROXY_AUTH standard
  58. + single linked list for disk LRU replacement
  59. + Incorporate Pelletier's latest retry patch for 1.1
  60. (3) URLs --> MD5?
  61. (1) reconfigure (SIGHUP) causes problems with Config.cacheSwap.swapDirs[].
  62. (1) I think we're assuming persistent connections and not looking at
  63.     the reply headers.
  64. (2) Write src/store_key_md5.c and lib/md5.c
  65. (2) SNMP interface
  66. (5) convert ipcache/fqdncache to double-linked list
  67.     and lose qsort() calls.
  68. (3) AS # routing
  69. - whois -h whois.ra.net '!gAS194'
  70. - Stevens V2 Ch.18
  71. (3) SIGHUP should reread error text files
  72. (4) support ftp://host/pub;type=d
  73. (5) should we write clean store logs from the double-linked list so
  74. that they are sorted in order of last reference?  Then upon
  75. restart we won't have to worry about the list being unsorted
  76. and causing problems with the LRU magic value.
  77. (3) ** Make checkFailureRatio() work again.  (DW)
  78. (2) **  copy over -z semantics from 1.1; don't automatically wipeout
  79. cache (DW)
  80. (3) ** Make swap.state binary with fixed-size cache keys (AR)
  81. (3) **  Make sure every squid.conf option has documentation (??)
  82. (3) **  Store cache key and other metadata in swap files (KA)
  83. (3) **  Finish implementing the *_dump() functions in cache_cf.c (DW)
  84. (2) **  Fix cachemgr.cgi.  It doesn't understand some of the new
  85.         output formats. (??)
  86. (2) ** Add "Squid" trailer to all error messages. (AR)
  87. (2) ** copy over 'test_reachability' from 1.1 (DW)
  88. (2) ** we don't properly handle the HTTP/1.1 'Connection' header (KA)
  89. (2) ** Code cleanup: (KA)
  90. - Make sure the lib/*.c files do not use printf/fprintf.
  91. - Replace bzero with memset
  92. - Replace bcopy with xmemcpy
  93. (4) ** FTP PUT (KA)
  94. (1) SSL doesn't work with Proxy Authentication
  95. (3)     HTTP Header todo list (AR)
  96. (5)     replace "for" loops in md5.c with memcpy and memset
  97. (3) **  shrink-able memory pools (AR)
  98. (3) ** request-range (AR)
  99. (4) **  Double check that MemBuf.size is used correctly everywhere (AR)
  100. (3) 'no_cache' access list for specifing objects which should not
  101. be cached.
  102. (3) Full request headers for CONNECT requests.
  103. (1) ** Send full HTTP requests in ICP messages (DW)
  104. (2) Track cache keys (MD5) in memory utilization
  105. (3) Resource limits.
  106. (3) Arjan's external proxy auth patch is at
  107. http://www.iae.nl/users/devet/squid/proxy_auth/
  108. (3) In some situations, a private-key reply needs to eject a
  109. public-key cached object.  For example when an object is
  110. first cachable, but later becomes uncachable.
  111. (4) Configurable proxy-auth realm
  112. (4) Configurable FQDN cache size