head	1.1;
branch	1.1.1;
access;
symbols
	postmerge-neon-0_23_9:1.1.1.3
	premerge-neon-0_23_9:1.1.1.3
	pre-neon-0_23_9:1.1.1.3
	postmerge-neon-0_23_8:1.1.1.3
	premerge-neon-0_23_8:1.1.1.3
	pre-neon-0_23_8:1.1.1.3
	postmerge-neon-0_23_7:1.1.1.3
	premerge-neon-0_23_7:1.1.1.3
	pre-neon-0_23_7:1.1.1.3
	postmerge-neon-0_23_6:1.1.1.3
	premerge-neon-0_23_6:1.1.1.3
	pre-neon-0_23_6:1.1.1.3
	postmerge-neon-0_23_5:1.1.1.3
	premerge-neon-0_23_5:1.1.1.3
	pre-neon-0_23_5:1.1.1.3
	postmerge-neon-0_23_4:1.1.1.3
	premerge-neon-0_23_4:1.1.1.3
	pre-neon-0_23_4:1.1.1.3
	postmerge-neon-0_23_3:1.1.1.3
	premerge-neon-0_23_3:1.1.1.3
	pre-neon-0_23_3:1.1.1.3
	postmerge-neon-0_23_2:1.1.1.3
	premerge-neon-0_23_2:1.1.1.3
	pre-neon-0_23_2:1.1.1.3
	postmerge-neon-0_23_1:1.1.1.3
	premerge-neon-0_23_1:1.1.1.3
	pre-neon-0_23_1:1.1.1.3
	postmerge-neon-0_23_0:1.1.1.3
	premerge-neon-0_23_0:1.1.1.3
	pre-neon-0_23_0:1.1.1.3
	postmerge-neon-0_22_0:1.1.1.3
	premerge-neon-0_22_0:1.1.1.3
	pre-neon-0_22_0:1.1.1.3
	postmerge-neon-0_21_3:1.1.1.3
	premerge-neon-0_21_3:1.1.1.3
	pre-neon-0_21_3:1.1.1.3
	postmerge-neon-0_21_2:1.1.1.3
	premerge-neon-0_21_2:1.1.1.3
	pre-neon-0_21_2:1.1.1.3
	postmerge-neon-0_21_1:1.1.1.3
	premerge-neon-0_21_1:1.1.1.3
	pre-neon-0_21_1:1.1.1.3
	postmerge-neon-0_21_0:1.1.1.3
	premerge-neon-0_21_0:1.1.1.3
	pre-neon-0_21_0:1.1.1.3
	postmerge-neon-0_20_0:1.1.1.3
	premerge-neon-0_20_0:1.1.1.3
	pre-neon-0_20_0:1.1.1.3
	postmerge-neon-0_19_4:1.1.1.3
	premerge-neon-0_19_4:1.1.1.3
	pre-neon-0_19_4:1.1.1.3
	postmerge-neon-0_19_3:1.1.1.3
	premerge-neon-0_19_3:1.1.1.3
	pre-neon-0_19_3:1.1.1.3
	postmerge-neon-0_19_2:1.1.1.3
	premerge-neon-0_19_2:1.1.1.3
	pre-neon-0_19_2:1.1.1.3
	postmerge-neon-0_19_1:1.1.1.3
	premerge-neon-0_19_1:1.1.1.3
	pre-neon-0_19_1:1.1.1.3
	postmerge-neon-0_19_0:1.1.1.3
	premerge-neon-0_19_0:1.1.1.3
	pre-neon-0_19_0:1.1.1.3
	postmerge-neon-0_18_5:1.1.1.3
	premerge-neon-0_18_5:1.1.1.3
	pre-neon-0_18_5:1.1.1.3
	postmerge-neon-0_18_4:1.1.1.3
	premerge-neon-0_18_4:1.1.1.3
	pre-neon-0_18_4:1.1.1.3
	postmerge-neon-0_18_3:1.1.1.3
	premerge-neon-0_18_3:1.1.1.3
	pre-neon-0_18_3:1.1.1.3
	postmerge-neon-0_18_2:1.1.1.3
	premerge-neon-0_18_2:1.1.1.3
	pre-neon-0_18_2:1.1.1.3
	postmerge-neon-0_18_1:1.1.1.3
	premerge-neon-0_18_1:1.1.1.3
	pre-neon-0_18_1:1.1.1.3
	postmerge-neon-0_18_0:1.1.1.3
	premerge-neon-0_18_0:1.1.1.3
	pre-neon-0_18_0:1.1.1.3
	postmerge-neon-0_17_2:1.1.1.3
	premerge-neon-0_17_2:1.1.1.3
	pre-neon-0_17_2:1.1.1.3
	postmerge-neon-0_17_1:1.1.1.3
	premerge-neon-0_17_1:1.1.1.3
	pre-neon-0_17_1:1.1.1.3
	postmerge-neon-0_17_0:1.1.1.3
	premerge-neon-0_17_0:1.1.1.3
	pre-neon-0_17_0:1.1.1.3
	postmerge-neon-0_16_1:1.1.1.3
	premerge-neon-0_16_1:1.1.1.3
	pre-neon-0_16_1:1.1.1.3
	postmerge-neon-0_16_0:1.1.1.3
	premerge-neon-0_16_0:1.1.1.3
	pre-neon-0_16_0:1.1.1.3
	postmerge-neon-0_15_3:1.1.1.3
	premerge-neon-0_15_3:1.1.1.3
	pre-neon-0_15_3:1.1.1.3
	postmerge-neon-0_15_2:1.1.1.3
	premerge-neon-0_15_2:1.1.1.3
	pre-neon-0_15_2:1.1.1.3
	postmerge-neon-0_15_1:1.1.1.3
	premerge-neon-0_15_1:1.1.1.3
	pre-neon-0_15_1:1.1.1.3
	postmerge-neon-0_15_0:1.1.1.3
	premerge-neon-0_15_0:1.1.1.3
	pre-neon-0_15_0:1.1.1.3
	postmerge-neon-0_14_0:1.1.1.3
	premerge-neon-0_14_0:1.1.1.3
	pre-neon-0_14_0:1.1.1.3
	postmerge-neon-0_13_0:1.1.1.3
	premerge-neon-0_13_0:1.1.1.3
	pre-neon-0_13_0:1.1.1.3
	postmerge-neon-0_12_0:1.1.1.3
	premerge-neon-0_12_0:1.1.1.3
	pre-neon-0_12_0:1.1.1.3
	postmerge-neon-0_11_0:1.1.1.3
	premerge-neon-0_11_0:1.1.1.3
	pre-neon-0_11_0:1.1.1.3
	postmerge-neon-0_10_0:1.1.1.3
	premerge-neon-0_10_0:1.1.1.3
	pre-neon-0_10_0:1.1.1.3
	postmerge-neon-0_9_1:1.1.1.3
	premerge-neon-0_9_1:1.1.1.3
	pre-neon-0_9_1:1.1.1.3
	postmerge-neon-0_9_0:1.1.1.3
	premerge-neon-0_9_0:1.1.1.3
	pre-neon-0_9_0:1.1.1.3
	postmerge-neon-0_8_1:1.1.1.3
	premerge-neon-0_8_1:1.1.1.3
	pre-neon-0_8_1:1.1.1.3
	postmerge-neon-0_8_0:1.1.1.3
	premerge-neon-0_8_0:1.1.1.3
	pre-neon-0_8_0:1.1.1.3
	postmerge-neon-0_7_7:1.1.1.3
	premerge-neon-0_7_7:1.1.1.3
	pre-neon-0_7_7:1.1.1.3
	postmerge-neon-0_7_6:1.1.1.3
	premerge-neon-0_7_6:1.1.1.3
	pre-neon-0_7_6:1.1.1.3
	postmerge-neon-0_7_5:1.1.1.3
	premerge-neon-0_7_5:1.1.1.3
	pre-neon-0_7_5:1.1.1.3
	postmerge-neon-0_7_4:1.1.1.3
	premerge-neon-0_7_4:1.1.1.3
	pre-neon-0_7_4:1.1.1.3
	postmerge-neon-0_7_3:1.1.1.3
	premerge-neon-0_7_3:1.1.1.3
	pre-neon-0_7_3:1.1.1.3
	postmerge-neon-0_7_2:1.1.1.3
	premerge-neon-0_7_2:1.1.1.3
	pre-neon-0_7_2:1.1.1.3
	postmerge-neon-0_7_1:1.1.1.3
	premerge-neon-0_7_1:1.1.1.3
	pre-neon-0_7_1:1.1.1.3
	postmerge-neon-0_7_0:1.1.1.3
	premerge-neon-0_7_0:1.1.1.3
	pre-neon-0_7_0:1.1.1.3
	postmerge-neon-0_6_0:1.1.1.3
	premerge-neon-0_6_0:1.1.1.3
	pre-neon-0_6_0:1.1.1.3
	postmerge-neon-0_5_1:1.1.1.3
	premerge-neon-0_5_1:1.1.1.3
	pre-neon-0_5_1:1.1.1.3
	postmerge-neon-0_5_0:1.1.1.3
	premerge-neon-0_5_0:1.1.1.3
	pre-neon-0_5_0:1.1.1.3
	postmerge-neon-0_4_2:1.1.1.3
	premerge-neon-0_4_2:1.1.1.3
	pre-neon-0_4_2:1.1.1.3
	postmerge-neon-0_4_1:1.1.1.3
	premerge-neon-0_4_1:1.1.1.3
	pre-neon-0_4_1:1.1.1.3
	postmerge-neon-0_4_0:1.1.1.3
	premerge-neon-0_4_0:1.1.1.3
	pre-neon-0_4_0:1.1.1.3
	postmerge-neon-0_3_1:1.1.1.3
	premerge-neon-0_3_1:1.1.1.3
	pre-neon-0_3_1:1.1.1.3
	postmerge-neon-0_3_0:1.1.1.3
	premerge-neon-0_3_0:1.1.1.3
	pre-neon-0_3_0:1.1.1.3
	postmerge-neon-0_2_1:1.1.1.3
	premerge-neon-0_2_1:1.1.1.3
	pre-neon-0_2_1:1.1.1.3
	postmerge-neon-0_2_0:1.1.1.3
	premerge-neon-0_2_0:1.1.1.3
	pre-neon-0_2_0:1.1.1.2
	postmerge-neon-0_1_1:1.1.1.2
	premerge-neon-0_1_1:1.1.1.2
	neon-0_1_1:1.1.1.2
	pre-neon-0_1_1:1.1.1.1
	neon-0_1_0:1.1.1.1
	neon:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2003.02.28.19.23.24;	author jbj;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2003.02.28.19.23.24;	author jbj;	state Exp;
branches;
next	1.1.1.2;

1.1.1.2
date	2003.02.28.19.23.24;	author jbj;	state Exp;
branches;
next	1.1.1.3;

1.1.1.3
date	2003.02.28.19.23.34;	author jbj;	state dead;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@
To Do List for neon                                      -*- text -*-
-------------------     Id: TODO,v 1.12 2000/05/10 18:15:47 joe Exp 

Please submit feature requests to <mailto:neon@@webdav.org>

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

2. Add proper domain support to authentication code. (requires full
   URI parsing support). Need to tell the auth layer the server
   details.

3. Add a callback to determine whether a specific request should go
   through the proxy server or not... based on URI, maybe method too
   since lots of HTTP/1.0 proxies break on DAV requests?

4. Better cnonce generation for authentication: use /dev/random or
   whatever like mod_auth_digest.

5. Add request hooks to remove all authentication code from
   http_request.c.

6. PUT/GET with ranges... http_get_range

7. hip_xml/dav_207/dav_prop might need a revamp.

   hip_xml: use an expat-esque interface; i.e. make hip_xml_parser
   opaque and add API to set handlers rather than initialize
   structures directly. Two problems need to be solved more elegantly:

   1) Allowing "sub-handler" for allowing parsing property element
   contents independantly of the overally 207 response parse.

   2) Allow "mixed-mode" parsing of XML which mixes cdata + elements.

   Probably, make hip_xml more of a "utility" layer rather than a
   "driving" layer; abstract out expat/libxml, namespace lookups,
   element name -> id mapping, easy CDATA handling...

8. WebDAV class 2 locking. Problems: this requires parsing the XML
   within a property element. This could be achieved by doing a
   completely new XML parse of the property value returned by end_prop
   from the 207 code, but this is a bit noddy. Options:

   a) Ideally: extend hip_xml and the 207 layer to allow doing a
   proper start/end_element/cdata parse of the XML *within* a
   property. This is tricky since it means extending hip_xml to
   *dynamically* determine whether to be in "collect" mode or not. Add
   another callback for this?

9. DeltaV support (http://www.webdav.org/deltav/). See also the
   inversion project (http://inversion.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).

12. SSL/TSL support... make it pluggable so we don't have to export
    crypto-related code at ALL?

13. Should we really be abort()'ing on out-of-memory? It makes a lot
    of code MUCH simpler (esp. sbuffer_* usage).

14. Nicer request-header manipulation... some kind of indexed data
    structure, so we're sure we don't add the same header to the
    request twice (e.g. Cache-Control). Must be at least as flexible
    as sbuffer usage, though.

16. Socket status notification (socket.c:sock_register_*) is awful.

17. Should we really be i18n'izing the low-level error messages in
    http_request.c, dav_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.
    
18. PROPFIND/propnames support.

19. libtool support, for proper shared libraries.

20. Add full 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
    http_auth_session, so I log into e.g. /foo/ and /bar/ (which
    are not in the same authentication domain)
    switch between them without having to re-enter passwords all the
    time.

22. Handle PROPFIND property error responses properly.

23. Mechanism for aborting a request mid-response; e.g., when a GET
    fails due to out of disk space, abort the download.

@


1.1.1.1
log
@track: auto import
@
text
@@


1.1.1.2
log
@track: auto import
@
text
@d3 1
a3 1
-------------------     Id: TODO,v 1.13 2000/05/11 13:14:23 joe Exp 
d63 1
a63 1
12. SSL/TLS support... make it pluggable so we don't have to export
@


1.1.1.3
log
@*** empty log message ***
@
text
@@


