--------------------- PatchSet 10347 Date: 2007/12/29 14:22:53 Author: adri Branch: s27_adri Tag: (none) Log: Add more items to my TODO list. Members: ADRIAN_TODO:1.1.2.18->1.1.2.19 Index: squid/ADRIAN_TODO =================================================================== RCS file: /cvsroot/squid-sf//squid/Attic/ADRIAN_TODO,v retrieving revision 1.1.2.18 retrieving revision 1.1.2.19 diff -u -r1.1.2.18 -r1.1.2.19 --- squid/ADRIAN_TODO 29 Dec 2007 05:36:13 -0000 1.1.2.18 +++ squid/ADRIAN_TODO 29 Dec 2007 14:22:53 -0000 1.1.2.19 @@ -111,17 +111,30 @@ (in any case, bring sanity to the disk code!) +* add a "header size" swap meta type (if one doesn't exist already) and then + modify the store client code to read in -that- much data (in multiple reads if needed) + before parsing the headers. Yes, at this point we can handle >4k reply status+headers.. + +Stuff to do before fleshing out stmemAppendRef() + * Audit all the storeClientRef() users (again!) and see if they're able to handle buffers larger than SM_PAGE_SIZE. The stmem stuff can now handle arbitrary-sized buffers and - these should be read/written as much as possible. + these should be read/written as much as possible. clientSendMoreData(), for example, + has an assert() to force this. -* .. then, add a "header size" swap meta type (if one doesn't exist already) and then - modify the store client code to read in -that- much data (in multiple reads if needed) - before parsing the headers. Yes, at this point we can handle >4k reply status+headers.. +* Flesh out the region referencing and quickly convert everything doing buf_t manipulations + directly (so libbuf/String, src/store.c::storeAppendRef(), all of src/stmem.c, + parts of src/http.c) are using the region stuff instead. + + - stuff like the src/http.c routines that use a const char *buf internally could probably + benefit from being turned into array offset manipulations. It might hurt performance + a little but we can always convert back the critical performing code into pointer + arithmetic where required. This pass is about tidying things up, remember.. + +And urgently, now that http.c is using buf_fill()! * Hm, what else? Ah, buf_fill() does a read() where it should do an FD_READ_METHOD and update the comm counters. Look at moving buf_fill() into src/ so it can access the FD_READ_METHOD and associated gunk (don't make buf depend on comm and comm depend on buf; have a "netbuf" library which depends on both. No cyclic dependencies!) -