diff -r 6518b035a9df -r 03076907b58a libidav/webdav.h --- 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