diff -r 279f343bbf6c -r fac51f87def0 src/server/config/keyfile.c --- a/src/server/config/keyfile.c Wed Jul 31 13:02:06 2013 +0200 +++ b/src/server/config/keyfile.c Sun Sep 08 23:27:07 2013 +0200 @@ -43,7 +43,6 @@ conf->users = NULL; int r = cfg_parse_basic_file((ConfigParser*)conf, in); - cfg_list_destr(conf->parser.mp, conf->users); if(r != 0) { // TODO: free return NULL; @@ -58,13 +57,13 @@ if(conf->users) { ucx_list_free(conf->users); } - ucx_mempool_destroy(conf->parser.mp); + ucx_mempool_destroy(conf->parser.mp->pool); free(conf); } int keyfile_parse(void *p, ConfigLine *begin, ConfigLine *end, sstr_t line) { KeyfileConfig *conf = p; - UcxMempool *mp = conf->parser.mp; + UcxAllocator *mp = conf->parser.mp; size_t tkn = 0; sstr_t *tk = sstrsplit(line, sstrn(";", 1), &tkn); @@ -78,7 +77,7 @@ entry->numgroups = 0; // get user name - entry->name = sstrdup_mp(mp, tk[0]); + entry->name = sstrdup_a(mp, tk[0]); // get hash sstr_t hash = sstrtrim(tk[1]); @@ -105,28 +104,28 @@ entry->hashtype = KEYFILE_SSHA; } else { // unkown hash type - fprintf(stderr, "unknown hash type: %s\n", sstrdup(hash_type).ptr); + fprintf(stderr, "unknown hash type: %s\n", sstrdup_a(mp, hash_type).ptr); return 1; } - entry->hashdata = sstrdup_mp(mp, hash_data); + entry->hashdata = sstrdup_a(mp, hash_data); // get groups if(tkn == 3) { sstr_t groups_str = sstrtrim(tk[2]); size_t ngroups = 0; sstr_t *groups = sstrsplit(groups_str, sstrn(",", 1), &ngroups); - entry->groups = calloc(ngroups, sizeof(sstr_t)); + entry->groups = mp->calloc(mp->pool, ngroups, sizeof(sstr_t)); entry->numgroups = ngroups; for(int i=0;igroups[i] = sstrdup_mp(mp, sstrtrim(groups[i])); + entry->groups[i] = sstrdup_a(mp, sstrtrim(groups[i])); free(groups[i].ptr); } free(groups); } // add user - conf->users = ucx_list_append(conf->users, entry); + conf->users = ucx_list_append_a(mp, conf->users, entry); // free tokens for(int i=0;i