📄 todo
字号:
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.6. PUT with ranges... ne_put_range9. 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.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -