libidav/webdav.h

changeset 43
03076907b58a
parent 42
6518b035a9df
child 68
f6d3db6113d3
--- a/libidav/webdav.h	Tue Mar 18 13:59:02 2014 +0100
+++ b/libidav/webdav.h	Thu Jun 05 15:11:29 2014 +0200
@@ -67,10 +67,16 @@
 
 typedef enum DavError DavError;
 
-#define DAV_SESSION_ENCRYPT_FILE     0x0001
-#define DAV_SESSION_ENCRYPT_NAME     0x0002
-#define DAV_SESSION_DECRYPT_PATH     0x0004 
+#define DAV_SESSION_ENCRYPT_CONTENT     0x0001
+#define DAV_SESSION_ENCRYPT_NAME        0x0002
+#define DAV_SESSION_DECRYPT_CONTENT     0x0004
+#define DAV_SESSION_DECRYPT_NAME        0x0008
 
+#define DAV_SESSION_CONTENT_ENCRYPTION  0x000a
+#define DAV_SESSION_FULL_ENCRYPTION     0x000f
+
+
+#define DAV_NS "http://www.uap-core.de/"
 
 struct DavNamespace {
     char *prefix;
@@ -99,6 +105,7 @@
     CURL          *handle;
     char          *base_url;
     UcxMempool    *mp;
+    UcxMap        *pathcache;
     DavKey        *key;
     uint32_t      flags;
     DavError      error;
@@ -153,14 +160,17 @@
         char *user,
         char *password);
 void dav_session_set_auth(DavSession *sn, char *user, char *password);
+void dav_session_set_flags(DavSession *sn, uint32_t flags);
+uint32_t dav_session_get_flags(DavSession *sn);
+void dav_session_enable_encryption(DavSession *sn, DavKey *key, int flags);
 
-void session_set_error(DavSession *sn, CURLcode c, int status);
 void dav_session_destroy(DavSession *sn);
 
 void* dav_session_malloc(DavSession *sn, size_t size);
 void* dav_session_calloc(DavSession *sn, size_t nelm, size_t size);
 void* dav_session_realloc(DavSession *sn, void *ptr, size_t size);
 void  dav_session_free(DavSession *sn, void *ptr);
+char* dav_session_strdup(DavSession *sn, char *str);
 
 
 DavResource* dav_get(DavSession *sn, char *path, char *properties);
@@ -184,6 +194,11 @@
 DavResource* dav_resource_new_child(DavSession *sn, DavResource *parent, char *name);
 DavResource* dav_resource_new_href(DavSession *sn, char *href);
 
+void dav_resource_free(DavResource *res);
+void dav_resource_free_all(DavResource *res);
+
+char* dav_resource_get_href(DavResource *resource);
+
 DavResource* dav_create_child(DavResource *parent, char *name);
 int dav_delete(DavResource *res);
 int dav_create(DavResource *res);
@@ -203,6 +218,9 @@
 int dav_store(DavResource *res);
 int dav_get_content(DavResource *res, void *stream, dav_write_func write_func);
 
+// private
+int dav_propfind(DavSession *sn, DavResource *root, UcxBuffer *rqbuf, DavQOp *cond, size_t len);
+
 #ifdef	__cplusplus
 }
 #endif

mercurial