src/server/config/keyfile.c

changeset 91
fac51f87def0
parent 88
73b3485e96f1
child 97
09fbefc0e6a9
--- 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;i<ngroups;i++) {
-            entry->groups[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<tkn;i++) {

mercurial