src/server/webdav/webdav.h

changeset 29
e8619defde14
parent 27
05b7576dca2b
child 30
27c7511c0e34
--- 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);
 

mercurial