--- a/src/server/webdav/webdav.h Sun May 06 10:09:27 2012 +0200 +++ b/src/server/webdav/webdav.h Wed May 16 12:47:28 2012 +0200 @@ -49,7 +49,11 @@ typedef struct DAVPropertyBackend DAVPropertyBackend; typedef struct PropfindRequest PropfindRequest; +typedef struct ProppatchRequest ProppatchRequest; typedef struct DavProperty DavProperty; +typedef struct DavPropertyCt DavPropertyCt; + +typedef struct XmlElement XmlElement; struct PropfindRequest { Session *sn; @@ -70,11 +74,37 @@ sbuf_t *out; }; +struct ProppatchRequest { + Session *sn; + Request *rq; + + UcxDlist *setProps; /* XmlElement list, set props */ + UcxDlist *removeProps; /* DavProperty list, remove props */ + + +}; + struct DavProperty { char *xmlns; char *name; }; +struct DavPropertyCt { + char *xmlns; + char *name; + DavPropertyCt **props; + int npr; +}; + +struct XmlElement { + char *xmlns; + char *name; + char *content; + int *ctlen; + int *numelm; + XmlElement **elms; +}; + /* * dav_res_propfind_f * @@ -96,6 +126,7 @@ int webdav_service(pblock *pb, Session *sn, Request *rq); int webdav_put(pblock *pb, Session *sn, Request *rq); int webdav_propfind(pblock *pb, Session *sn, Request *rq); +int webdav_proppatch(pblock *pb, Session *sn, Request *rq); void dav_resource_response(PropfindRequest *rq, sstr_t path, sstr_t uri);