summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2004-10-02 18:47:02 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2004-10-02 18:47:02 +0000
commit0294ff3d3282d1b1c5497f00ea25e5e55e6f4338 (patch)
tree978af6f81c7b7715597871b1e89a9ad083907f1a /TODO
downloadneon-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--TODO121
1 files changed, 121 insertions, 0 deletions
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..e31a595
--- /dev/null
+++ b/TODO
@@ -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.
+