diff -r 5ec9abba1027 -r 3a1d5a52adfc src/server/daemon/config.c --- 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; }