--- a/libidav/webdav.h Sat Feb 14 18:11:29 2026 +0100 +++ b/libidav/webdav.h Sat Jun 20 19:00:56 2026 +0200 @@ -189,17 +189,20 @@ void(*get_progress)(DavResource *res, int64_t total, int64_t now, void *userdata); void(*put_progress)(DavResource *res, int64_t total, int64_t now, void *userdata); void *progress_userdata; + + unsigned int ref; }; struct DavContext { - CxMap *namespaces; - CxMap *namespaceinfo; - CxMap *keys; - CxList *sessions; - DavProxy *http_proxy; - DavProxy *https_proxy; - DAV_MUTEX mutex; - DavBool mtsafe; + CxMap *namespaces; + CxMap *namespaceinfo; + CxMap *keys; + CxList *sessions; + DavProxy *http_proxy; + DavProxy *https_proxy; + DAV_MUTEX mutex; + DavBool mtsafe; + unsigned int ref; }; struct DavProxy { @@ -264,6 +267,8 @@ }; DavContext* dav_context_new(void); +void dav_context_ref(DavContext *ctx); +void dav_context_unref(DavContext *ctx); void dav_context_destroy(DavContext *ctx); void dav_context_set_mtsafe(DavContext *ctx, DavBool enable); @@ -290,6 +295,8 @@ char *user, char *password); DavSession* dav_session_clone(DavSession *sn); +void dav_session_ref(DavSession *sn); +void dav_session_unref(DavSession *sn); void dav_session_set_auth(DavSession *sn, const char *user, const char *password); void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password); void dav_session_set_baseurl(DavSession *sn, char *base_url);