libidav/webdav.h

changeset 43
03076907b58a
parent 42
6518b035a9df
child 68
f6d3db6113d3
equal deleted inserted replaced
42:6518b035a9df 43:03076907b58a
65 DAV_CONFLICT 65 DAV_CONFLICT
66 }; 66 };
67 67
68 typedef enum DavError DavError; 68 typedef enum DavError DavError;
69 69
70 #define DAV_SESSION_ENCRYPT_FILE 0x0001 70 #define DAV_SESSION_ENCRYPT_CONTENT 0x0001
71 #define DAV_SESSION_ENCRYPT_NAME 0x0002 71 #define DAV_SESSION_ENCRYPT_NAME 0x0002
72 #define DAV_SESSION_DECRYPT_PATH 0x0004 72 #define DAV_SESSION_DECRYPT_CONTENT 0x0004
73 73 #define DAV_SESSION_DECRYPT_NAME 0x0008
74
75 #define DAV_SESSION_CONTENT_ENCRYPTION 0x000a
76 #define DAV_SESSION_FULL_ENCRYPTION 0x000f
77
78
79 #define DAV_NS "http://www.uap-core.de/"
74 80
75 struct DavNamespace { 81 struct DavNamespace {
76 char *prefix; 82 char *prefix;
77 char *name; 83 char *name;
78 }; 84 };
97 struct DavSession { 103 struct DavSession {
98 DavContext *context; 104 DavContext *context;
99 CURL *handle; 105 CURL *handle;
100 char *base_url; 106 char *base_url;
101 UcxMempool *mp; 107 UcxMempool *mp;
108 UcxMap *pathcache;
102 DavKey *key; 109 DavKey *key;
103 uint32_t flags; 110 uint32_t flags;
104 DavError error; 111 DavError error;
105 const char *errorstr; 112 const char *errorstr;
106 }; 113 };
151 DavContext *context, 158 DavContext *context,
152 char *base_url, 159 char *base_url,
153 char *user, 160 char *user,
154 char *password); 161 char *password);
155 void dav_session_set_auth(DavSession *sn, char *user, char *password); 162 void dav_session_set_auth(DavSession *sn, char *user, char *password);
156 163 void dav_session_set_flags(DavSession *sn, uint32_t flags);
157 void session_set_error(DavSession *sn, CURLcode c, int status); 164 uint32_t dav_session_get_flags(DavSession *sn);
165 void dav_session_enable_encryption(DavSession *sn, DavKey *key, int flags);
166
158 void dav_session_destroy(DavSession *sn); 167 void dav_session_destroy(DavSession *sn);
159 168
160 void* dav_session_malloc(DavSession *sn, size_t size); 169 void* dav_session_malloc(DavSession *sn, size_t size);
161 void* dav_session_calloc(DavSession *sn, size_t nelm, size_t size); 170 void* dav_session_calloc(DavSession *sn, size_t nelm, size_t size);
162 void* dav_session_realloc(DavSession *sn, void *ptr, size_t size); 171 void* dav_session_realloc(DavSession *sn, void *ptr, size_t size);
163 void dav_session_free(DavSession *sn, void *ptr); 172 void dav_session_free(DavSession *sn, void *ptr);
173 char* dav_session_strdup(DavSession *sn, char *str);
164 174
165 175
166 DavResource* dav_get(DavSession *sn, char *path, char *properties); 176 DavResource* dav_get(DavSession *sn, char *path, char *properties);
167 177
168 DavResource* dav_query_get(DavSession *sn, DavGetQuery *query); 178 DavResource* dav_query_get(DavSession *sn, DavGetQuery *query);
182 192
183 DavResource* dav_resource_new(DavSession *sn, char *path); 193 DavResource* dav_resource_new(DavSession *sn, char *path);
184 DavResource* dav_resource_new_child(DavSession *sn, DavResource *parent, char *name); 194 DavResource* dav_resource_new_child(DavSession *sn, DavResource *parent, char *name);
185 DavResource* dav_resource_new_href(DavSession *sn, char *href); 195 DavResource* dav_resource_new_href(DavSession *sn, char *href);
186 196
197 void dav_resource_free(DavResource *res);
198 void dav_resource_free_all(DavResource *res);
199
200 char* dav_resource_get_href(DavResource *resource);
201
187 DavResource* dav_create_child(DavResource *parent, char *name); 202 DavResource* dav_create_child(DavResource *parent, char *name);
188 int dav_delete(DavResource *res); 203 int dav_delete(DavResource *res);
189 int dav_create(DavResource *res); 204 int dav_create(DavResource *res);
190 int dav_exists(DavResource *res); 205 int dav_exists(DavResource *res);
191 206
201 216
202 int dav_load(DavResource *res); 217 int dav_load(DavResource *res);
203 int dav_store(DavResource *res); 218 int dav_store(DavResource *res);
204 int dav_get_content(DavResource *res, void *stream, dav_write_func write_func); 219 int dav_get_content(DavResource *res, void *stream, dav_write_func write_func);
205 220
221 // private
222 int dav_propfind(DavSession *sn, DavResource *root, UcxBuffer *rqbuf, DavQOp *cond, size_t len);
223
206 #ifdef __cplusplus 224 #ifdef __cplusplus
207 } 225 }
208 #endif 226 #endif
209 227
210 #endif /* WEBDAV_H */ 228 #endif /* WEBDAV_H */

mercurial