src/server/safs/nametrans.c

changeset 415
d938228c382e
parent 369
e28ee9875a90
child 490
d218607f5a7e
--- a/src/server/safs/nametrans.c	Wed Nov 02 19:19:01 2022 +0100
+++ b/src/server/safs/nametrans.c	Sun Nov 06 15:53:32 2022 +0100
@@ -48,22 +48,15 @@
         rq->vfs = vfs;
     }
     
-    WebdavBackend *backend_first = NULL;
-    WebdavBackend *backend_last = NULL;
-    UCX_FOREACH(elm, repo->davBackends) {
-        WebdavBackendInitData *davInit = elm->data;
+    void *backend_first = NULL;
+    void *backend_last = NULL;
+    CxIterator i = cxListIterator(repo->davBackends, 0);
+    cx_foreach(WebdavBackendInitData *, davInit, i) {
         WebdavBackend *backend = davInit->davType->create(sn, rq, pb, davInit->davInitData);
         if(!backend) {
             return REQ_ABORTED;
         }
-        
-        if(backend_last) {
-            backend_last->next = backend;
-            backend_last = backend;
-        } else {
-            backend_first = backend;
-            backend_last = backend;
-        }
+        cx_linked_list_add(&backend_first, &backend_last, -1, offsetof(WebdavBackend, next), backend);
     }
     rq->davCollection = backend_first;
     
@@ -75,7 +68,7 @@
     if(!dav) return 0;
     
     ServerConfiguration *config = session_get_config(sn);
-    WebdavRepository *repo = ucx_map_cstr_get(config->dav, dav);
+    WebdavRepository *repo = cxMapGet(config->dav, cx_hash_key_str(dav));
     
     if(!repo) {
         log_ereport(LOG_MISCONFIG, "nametrans: unknown dav repository '%s'", dav);
@@ -181,8 +174,8 @@
         return REQ_ABORTED;
     }
     
-    sstr_t root_str = sstr(root);
-    sstr_t uri_str = sstr(pblock_findkeyval(pb_key_uri, rq->reqpb));  
+    cxstring root_str = cx_str(root);
+    cxstring uri_str = cx_str(pblock_findkeyval(pb_key_uri, rq->reqpb));  
     
     request_set_path(root_str, uri_str, rq->vars);
     
@@ -255,7 +248,7 @@
         return REQ_ABORTED;
     }
     
-    request_set_path(sstr(dir), sstr(uri), rq->vars);
+    request_set_path(cx_str(dir), cx_str(uri), rq->vars);
     
     if(name) {
         // add object to rq->vars
@@ -306,13 +299,13 @@
     }
     
     char *uri = pblock_findkeyval(pb_key_uri, rq->reqpb);
-    sstr_t u = sstr(uri);
-    sstr_t f = sstr(from);
-    if(sstrprefix(u, f)) {
-        sstr_t suf = sstrsubs(u, f.length);
-        sstr_t ppath = sstrcat(2, sstr(path), suf);
+    cxstring u = cx_str(uri);
+    cxstring f = cx_str(from);
+    if(cx_strprefix(u, f)) {
+        cxstring suf = cx_strsubs(u, f.length);
+        cxmutstr ppath = cx_strcat(2, cx_str(path), suf);
         
-        request_set_path(sstr(root), ppath, rq->vars);
+        request_set_path(cx_str(root), (cxstring){ppath.ptr, ppath.length}, rq->vars);
         free(ppath.ptr);
         
         if(name) {

mercurial