64 typedef struct DavXmlNode DavXmlNode; |
70 typedef struct DavXmlNode DavXmlNode; |
65 typedef struct DavXmlAttr DavXmlAttr; |
71 typedef struct DavXmlAttr DavXmlAttr; |
66 |
72 |
67 typedef struct DavInputStream DavInputStream; |
73 typedef struct DavInputStream DavInputStream; |
68 typedef struct DavOutputStream DavOutputStream; |
74 typedef struct DavOutputStream DavOutputStream; |
|
75 |
|
76 #ifndef _WIN32 |
|
77 #define DAV_MUTEX pthread_mutex_t |
|
78 #else |
|
79 #define DAV_MUTEX HANDLE |
|
80 #endif |
69 |
81 |
70 typedef size_t(*dav_read_func)(void*, size_t, size_t, void*); |
82 typedef size_t(*dav_read_func)(void*, size_t, size_t, void*); |
71 typedef size_t(*dav_write_func)(const void*, size_t, size_t, void*); |
83 typedef size_t(*dav_write_func)(const void*, size_t, size_t, void*); |
72 typedef int(*dav_seek_func)(const void *, long, int); |
84 typedef int(*dav_seek_func)(const void *, long, int); |
73 |
85 |
178 void(*put_progress)(DavResource *res, int64_t total, int64_t now, void *userdata); |
190 void(*put_progress)(DavResource *res, int64_t total, int64_t now, void *userdata); |
179 void *progress_userdata; |
191 void *progress_userdata; |
180 }; |
192 }; |
181 |
193 |
182 struct DavContext { |
194 struct DavContext { |
183 CxMap *namespaces; |
195 CxMap *namespaces; |
184 CxMap *namespaceinfo; |
196 CxMap *namespaceinfo; |
185 CxMap *keys; |
197 CxMap *keys; |
186 CxList *sessions; |
198 CxList *sessions; |
187 DavProxy *http_proxy; |
199 DavProxy *http_proxy; |
188 DavProxy *https_proxy; |
200 DavProxy *https_proxy; |
|
201 DAV_MUTEX mutex; |
|
202 DavBool mtsafe; |
189 }; |
203 }; |
190 |
204 |
191 struct DavProxy { |
205 struct DavProxy { |
192 char *url; |
206 char *url; |
193 char *username; |
207 char *username; |
249 DavXmlAttr *next; |
263 DavXmlAttr *next; |
250 }; |
264 }; |
251 |
265 |
252 DavContext* dav_context_new(void); |
266 DavContext* dav_context_new(void); |
253 void dav_context_destroy(DavContext *ctx); |
267 void dav_context_destroy(DavContext *ctx); |
|
268 void dav_context_set_mtsafe(DavContext *ctx, DavBool enable); |
|
269 |
|
270 void dav_context_lock(DavContext *ctx); |
|
271 void dav_context_unlock(DavContext *ctx); |
254 |
272 |
255 void dav_context_add_key(DavContext *context, DavKey *key); |
273 void dav_context_add_key(DavContext *context, DavKey *key); |
256 DavKey* dav_context_get_key(DavContext *context, const char *name); |
274 DavKey* dav_context_get_key(DavContext *context, const char *name); |
257 |
275 |
258 int dav_add_namespace(DavContext *context, const char *prefix, const char *ns); |
276 int dav_add_namespace(DavContext *context, const char *prefix, const char *ns); |
259 DavNamespace* dav_get_namespace(DavContext *context, const char *prefix); |
277 DavNamespace* dav_get_namespace(DavContext *context, const char *prefix); |
260 DavNamespace* dav_get_namespace_s(DavContext *context, cxstring prefix); |
278 DavNamespace* dav_get_namespace_s(DavContext *context, cxstring prefix); |
261 |
279 |
262 int dav_enable_namespace_encryption(DavContext *context, const char *ns, DavBool encrypt); |
280 int dav_enable_namespace_encryption(DavContext *context, const char *ns, DavBool encrypt); |
263 int dav_namespace_is_encrypted(DavContext *context, const char *ns); |
281 int dav_namespace_is_encrypted(DavContext *context, const char *ns); |
|
282 |
|
283 int dav_context_add_session(DavContext *context, DavSession *sn); |
|
284 int dav_context_remove_session(DavContext *context, DavSession *sn); |
264 |
285 |
265 DavSession* dav_session_new(DavContext *context, char *base_url); |
286 DavSession* dav_session_new(DavContext *context, char *base_url); |
266 DavSession* dav_session_new_auth( |
287 DavSession* dav_session_new_auth( |
267 DavContext *context, |
288 DavContext *context, |
268 char *base_url, |
289 char *base_url, |
269 char *user, |
290 char *user, |
270 char *password); |
291 char *password); |
|
292 DavSession* dav_session_clone(DavSession *sn); |
271 void dav_session_set_auth(DavSession *sn, const char *user, const char *password); |
293 void dav_session_set_auth(DavSession *sn, const char *user, const char *password); |
272 void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password); |
294 void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password); |
273 void dav_session_set_baseurl(DavSession *sn, char *base_url); |
295 void dav_session_set_baseurl(DavSession *sn, char *base_url); |
274 void dav_session_enable_encryption(DavSession *sn, DavKey *key, int flags); |
296 void dav_session_enable_encryption(DavSession *sn, DavKey *key, int flags); |
275 |
297 |