libidav/methods.h

changeset 128
649eb328674a
parent 75
56962faf2b42
child 135
664aeaec8d25
--- a/libidav/methods.h	Tue Jun 02 10:07:20 2015 +0200
+++ b/libidav/methods.h	Tue Jun 02 20:57:23 2015 +0200
@@ -32,10 +32,28 @@
 #include "webdav.h"
 #include "resource.h"
 
+#include <ucx/list.h>
+
 #ifdef	__cplusplus
 extern "C" {
 #endif
 
+typedef struct PropfindParser PropfindParser;
+typedef struct ResponseTag    ResponseTag;
+
+struct PropfindParser {
+    xmlDoc *document;
+    xmlNode *current;
+};
+
+struct ResponseTag {
+    char    *href;
+    int     iscollection;
+    UcxList *properties;
+    char    *crypto_name;
+    char    *crypto_key;
+};
+
 CURLcode do_propfind_request(
         CURL *handle,
         UcxBuffer *request,
@@ -56,6 +74,13 @@
 UcxBuffer* create_propfind_request(DavSession *sn, UcxList *properties);
 UcxBuffer* create_basic_propfind_request();
 
+PropfindParser* create_propfind_parser(UcxBuffer *response, char *url);
+int get_propfind_response(PropfindParser *parser, ResponseTag *result);
+
+int hrefeq(DavSession *sn, char *href1, char *href2);
+DavResource* response2resource(DavSession *sn, ResponseTag *response, char *parent_path);
+void add_properties(DavResource *res, ResponseTag *response);
+
 DavResource* parse_propfind_response(DavSession *sn, DavResource *root, UcxBuffer *response, DavQOp *cond, size_t len);
 int parse_response_tag(DavResource *resource, xmlNode *node, DavQOp *cond, size_t len);
 void set_davprops(DavResource *res);

mercurial