diff -r e1f053ba2c10 -r 61a231a8d8f5 libidav/session.c --- a/libidav/session.c Tue Jul 07 21:52:33 2026 +0200 +++ b/libidav/session.c Wed Jul 08 15:34:41 2026 +0200 @@ -162,13 +162,22 @@ } void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password) { + dav_curl_set_auth(sn->handle, user, password); +} + +int dav_curl_set_auth(CURL *handle, cxstring user, cxstring password) { if(user.length > 0 && password.length > 0) { size_t upwdlen = user.length + password.length + 2; char *upwdbuf = malloc(upwdlen); + if(!upwdbuf) { + return 1; + } snprintf(upwdbuf, upwdlen, "%.*s:%.*s", (int)user.length, user.ptr, (int)password.length, password.ptr); - curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf); + curl_easy_setopt(handle, CURLOPT_USERPWD, upwdbuf); free(upwdbuf); + return 0; } + return -1; } void dav_session_set_baseurl(DavSession *sn, const char *base_url) {