diff -r e554f3d72d9e -r 067ea2315a8a libidav/webdav.h --- a/libidav/webdav.h Tue Dec 12 23:58:54 2017 +0100 +++ b/libidav/webdav.h Mon Dec 18 11:56:11 2017 +0100 @@ -63,6 +63,8 @@ typedef size_t(*dav_read_func)(void*, size_t, size_t, void*); typedef size_t(*dav_write_func)(const void*, size_t, size_t, void*); +typedef int(*dav_auth_func)(DavSession *, void *); + enum DavError { DAV_OK = 0, DAV_ERROR, @@ -140,12 +142,15 @@ uint32_t flags; DavError error; char *errorstr; + + int(*auth_prompt)(DavSession *sn, void *userdata); + void *authprompt_userdata; }; struct DavContext { - UcxMap *namespaces; - UcxMap *keys; - UcxList *sessions; + UcxMap *namespaces; + UcxMap *keys; + UcxList *sessions; DavProxy *http_proxy; DavProxy *https_proxy; }; @@ -218,6 +223,8 @@ void dav_session_set_auth(DavSession *sn, char *user, char *password); void dav_session_enable_encryption(DavSession *sn, DavKey *key, int flags); +void dav_session_set_authcallback(DavSession *sn, dav_auth_func func, void *userdata); + void dav_session_destroy(DavSession *sn); void* dav_session_malloc(DavSession *sn, size_t size);