121 lines
4.6 KiB
Plaintext
121 lines
4.6 KiB
Plaintext
|
|
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.
|
|
|
|
64. Add options to only enable SSLv2 support, etc.
|
|
|
|
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_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.
|
|
|
|
65. Add ne_uri_copy function and use it in ne_lock_copy. (patch
|
|
sent to neon@webdav.org)
|