diff options
author | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2004-10-02 18:47:02 +0000 |
---|---|---|
committer | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2004-10-02 18:47:02 +0000 |
commit | 0294ff3d3282d1b1c5497f00ea25e5e55e6f4338 (patch) | |
tree | 978af6f81c7b7715597871b1e89a9ad083907f1a /TODO | |
download | neon-0294ff3d3282d1b1c5497f00ea25e5e55e6f4338.tar.gz |
Import neon 0.24.0 to begin 0.24.x branch.
git-svn-id: http://svn.webdav.org/repos/projects/neon/branches/0.24.x@243 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 121 |
1 files changed, 121 insertions, 0 deletions
@@ -0,0 +1,121 @@ + +To Do List for neon -*- text -*- +=================== + +Please submit feature requests to <mailto:neon@webdav.org> + +For one-point-oh +---------------- + +23. Mechanism for aborting a request mid-response; e.g., when a GET + fails due to out of disk space, abort the download. + +31. Make it threadsafe: + socket.c: getservbyname -> getservbyname_r. + +38. Replace all use of split_string/pair_string with ne_token. + +40. XML body acceptance callback should check Content-Type. Should + also pass encoding to expat if one is given (how about libxml?). + Recent mod_dav's return XML bodies in 424 responses which need + displaying properly. + +44. Finer-grained connection status feedback, i.e., "Sent Request", + "Got response status-line"... "Reading response body" + +58. 2616 is quite strict about when to retry non-idempotent requests + and when not to. neon may not be compliant here. + +61. Make everything namespace-safe: + remove split_string/pair_string. + +62. Select which auth mechanisms are allowed, e.g. JUST SAY NO to + basic might very well be useful to some apps. + +63. Unconditionally turn off Nagle algorithm. + +Longer term +----------- + + +1. Support for HTTP-extended authoring methods ala WebRFM etc; using + New-URI header etc. Also support the BROWSE and INDEX methods. The + protocol is documented at: + http://www.ics.uci.edu/pub/ietf/webdav/ns_dav.html + DON'T do this inside ne_basic.c, do it separately in + ne_author.c or something. + +2. Add proper domain support to authentication code. (requires full + URI parsing support). Need to tell the auth layer the server + details. + +4. Better cnonce generation for authentication: use /dev/{u}random or + whatever like mod_auth_digest. + +6. PUT with ranges... ne_put_range + +9. DeltaV support (http://www.webdav.org/deltav/). See also the + subversion project (http://subversion.tigris.org/) who might build + a versioning system over DAV. + +10. ACL support (http://www.webdav.org/acl/) + +11. DASL support (http://www.webdav.org/dasl/). Xythos have server + support for this (www.sharemation.com). The UI is probably the + hardest problem here. + => Jim Whitehead's UCI postgrad team is working on this and + has written a DASL implementation. + +14. Improved request-header manipulation... some kind of indexed table + (a la Apache, libghttp, so we're sure we don't add the same header + to the request twice. Better control over adding Cache-Control + headers would be good too. + +17. Should we really be i18n'izing the low-level error messages in + ne_request.c, ne_207.c ? It seems nice and clever to, so the user + REALLY know what is going wrong with the server (probably), but it + is maybe a bit frightening. + +20. Add decent and proper URI parser + handling. Or stop pretending we + are doing "URI" parsing, and just handle HTTP URL's. + +21. Storing multiple authentication "sessions" within an actual + auth_session, so I can log into e.g. /foo/ and /bar/ (which are + not in the same authentication domain) and switch between them + without having to re-enter passwords all the time. + +28. Support response caching? + +35. Allow i18n'ization if building a shared library, iff gettext + support is on the system (and hence add -lintl or whatever to + NEON_LIBS). If system has no gettext support, then it's probably + impossible to support i18n in the library (although *applications* + can support it by bundling gettext themselves). Take a look at how + other libraries handle this. + +46. Asynchronous request-dispatching? Makes integration into GUI loop + easy... any other reasons? Must leave existing request_dispatch + interface intact. + +47. Indexed table-based response-header access? Might simplify things + like response body acceptance callbacks (i.e., can get access to + Content-Type header for XML). + +48. Possibly, store the time of last interaction over the TCP socket, + call it 't'. If the next request is made after t+20, presume the + persistent connection is dead, so re-connect automatically. If we + don't do this, then we have two wasted write() calls making the + request, then failing, then re-connecting. It's really only worth + doing this if this actually saves any packets on the wire, which + it probably doesn't. strace / tcpdump might help here. + +50. opendir/readdir/closedir-esque interface for PROPFIND depth 1, + a la EZDAV. (cadaver has it already) + +53. "ne_session" concept is hazy. Abstract out a "connection" concept + too, and allow >1 connection per-session in multi-threaded use, + somehow. + +57. Add function to map of status-code values to i18n-ized reason + phrase. + |