--- a/libidav/session.c Sun Dec 07 20:16:59 2025 +0100 +++ b/libidav/session.c Fri Dec 19 17:53:18 2025 +0100 @@ -65,7 +65,7 @@ sn->locks = NULL; // set proxy - DavProxy *proxy = cx_strprefix(url, CX_STR("https")) ? context->https_proxy + DavProxy *proxy = cx_strprefix(url, cx_str("https")) ? context->https_proxy : context->http_proxy; if (proxy->url) { @@ -395,8 +395,8 @@ cxstring p = cx_str(path); CxBuffer href; CxBuffer pbuf; - cxBufferInit(&href, NULL, 256, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND); - cxBufferInit(&pbuf, NULL, 256, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND); + cxBufferInit(&href, cxDefaultAllocator, NULL, 256, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND); + cxBufferInit(&pbuf, cxDefaultAllocator, NULL, 256, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND); int start = 0; int begin = 0; @@ -435,7 +435,7 @@ CxBuffer *rqbuf = create_basic_propfind_request(); cxstring remaining = cx_strsubs(p, start); - CxStrtokCtx elms = cx_strtok(remaining, CX_STR("/"), INT_MAX); + CxStrtokCtx elms = cx_strtok(remaining, cx_str("/"), INT_MAX); DavResource *res = root; cxBufferPutString(&pbuf, res->path); // iterate over all remaining path elements @@ -568,7 +568,8 @@ // create lock manager DavLockManager *locks = cxMalloc(sn->mp->allocator, sizeof(DavLockManager)); locks->resource_locks = cxHashMapCreate(sn->mp->allocator, CX_STORE_POINTERS, 16); - locks->collection_locks = cxLinkedListCreate(sn->mp->allocator, dav_lock_cmp, CX_STORE_POINTERS); + locks->collection_locks = cxLinkedListCreate(sn->mp->allocator, CX_STORE_POINTERS); + cxSetCompareFunc(locks->collection_locks, dav_lock_cmp); sn->locks = locks; return 0; }