src/server/daemon/config.c

changeset 54
3a1d5a52adfc
parent 51
b28cf69f42e8
child 60
feb2f1e115c6
--- a/src/server/daemon/config.c	Fri Mar 01 22:44:54 2013 +0100
+++ b/src/server/daemon/config.c	Sat Mar 16 23:11:34 2013 +0100
@@ -689,15 +689,17 @@
 }
 
 ACLList* acl_config_convert(ServerConfiguration *cfg, ACLConfig *acl) {
-    ACLList *acllist = malloc(sizeof(ACLList));
-    acllist->authdb = NULL;
-    acllist->authprompt = NULL;
+    WSAcl *acllist = malloc(sizeof(WSAcl));
+    acllist->acl.check = (acl_check_f)wsacl_check;
+    acllist->acl.authdb = NULL;
+    acllist->acl.authprompt = NULL;
+    acllist->acl.isextern = 0;
     acllist->ace = NULL;
     acllist->ece = NULL;
     
     size_t s = ucx_list_size(acl->entries);
-    ACLEntry **aces = calloc(s, sizeof(ACLEntry*));
-    ACLEntry **eces = calloc(s, sizeof(ACLEntry*));
+    WSAce **aces = calloc(s, sizeof(WSAce*));
+    WSAce **eces = calloc(s, sizeof(WSAce*));
     int ai = 0;
     int ei = 0;
     
@@ -706,7 +708,7 @@
         ACEConfig *acecfg = elm->data;
         
         // copy data
-        ACLEntry *ace = malloc(sizeof(ACLEntry));
+        WSAce *ace = malloc(sizeof(WSAce));
         ace->access_mask = acecfg->access_mask;
         ace->flags = acecfg->flags;
         ace->type = acecfg->type;
@@ -724,13 +726,13 @@
     
     // create new entrie arrays with perfect fitting size
     if(ai > 0) {
-        acllist->ace = calloc(ai, sizeof(ACLEntry*));
+        acllist->ace = calloc(ai, sizeof(WSAce*));
     }
     if(ei > 0) {
-        acllist->ece = calloc(ei, sizeof(ACLEntry*));
+        acllist->ece = calloc(ei, sizeof(WSAce*));
     }
-    memcpy(acllist->ace, aces, ai*sizeof(ACLEntry*));
-    memcpy(acllist->ece, eces, ei*sizeof(ACLEntry*));
+    memcpy(acllist->ace, aces, ai*sizeof(WSAce*));
+    memcpy(acllist->ece, eces, ei*sizeof(WSAce*));
     acllist->acenum = ai;
     acllist->ecenum = ei;
     
@@ -744,12 +746,12 @@
         
         if(authdb_str.ptr) {
             AuthDB *authdb = ucx_map_sstr_get(cfg->authdbs, authdb_str);
-            acllist->authdb = authdb;
+            acllist->acl.authdb = authdb;
             if(authdb && prompt_str.ptr) {
-                acllist->authprompt = sstrdup(prompt_str).ptr;
+                acllist->acl.authprompt = sstrdup(prompt_str).ptr;
             }
         }
     }
     
-    return acllist;
+    return &acllist->acl;
 }

mercurial