]> code.citadel.org Git - citadel.git/blobdiff - citadel/server/control.c
cdb_fetch() and cdb_next_item() now return a struct cdbdata instead of a pointer...
[citadel.git] / citadel / server / control.c
index 5daef726ea18a3193cb50c330976bd07783cb3d9..3427240e1f98412f9f14484e724181448e91cb0e 100644 (file)
@@ -639,21 +639,20 @@ void cmd_conf(char *argbuf) {
 
        // CONF LISTVAL - list configuration variables in the database and their values
        else if (!strcasecmp(cmd, "LISTVAL")) {
-               struct cdbdata *cdbcfg;
+               struct cdbdata cdbcfg;
                int keylen = 0;
                char *key = NULL;
                char *value = NULL;
        
                cprintf("%d all configuration variables\n", LISTING_FOLLOWS);
                cdb_rewind(CDB_CONFIG);
-               while (cdbcfg = cdb_next_item(CDB_CONFIG), cdbcfg != NULL) {
-                       if (cdbcfg->len < 1020) {
-                               keylen = strlen(cdbcfg->ptr);
-                               key = cdbcfg->ptr;
-                               value = cdbcfg->ptr + keylen + 1;
+               while (cdbcfg = cdb_next_item(CDB_CONFIG), cdbcfg.len>0) {
+                       if (cdbcfg.len < 1020) {
+                               keylen = strlen(cdbcfg.ptr);
+                               key = cdbcfg.ptr;
+                               value = cdbcfg.ptr + keylen + 1;
                                cprintf("%s|%s\n", key, value);
                        }
-                       cdb_free(cdbcfg);
                }
                cprintf("000\n");
        }