]> code.citadel.org Git - citadel.git/blobdiff - citadel/server/modules/ctdlproto/serv_user.c
cdb_fetch() and cdb_next_item() now return a struct cdbdata instead of a pointer...
[citadel.git] / citadel / server / modules / ctdlproto / serv_user.c
index f5f4ef525faaad5118cc7cc430dd75845f6f3396..f3c5c33a730ddd9388fd9592a7e0a259212324e3 100644 (file)
@@ -381,7 +381,7 @@ void cmd_forg(char *argbuf) {
 
 // Get Next Unregistered User
 void cmd_gnur(char *argbuf) {
-       struct cdbdata *cdbus;
+       struct cdbdata cdbus;
        struct ctdluser usbuf;
 
        if (CtdlAccessCheck(ac_aide)) {
@@ -395,10 +395,9 @@ void cmd_gnur(char *argbuf) {
 
        // There are unvalidated users.  Traverse the user database, and return the first user we find that needs validation.
        cdb_rewind(CDB_USERS);
-       while (cdbus = cdb_next_item(CDB_USERS), cdbus != NULL) {
+       while (cdbus = cdb_next_item(CDB_USERS), cdbus.len>0) {
                memset(&usbuf, 0, sizeof(struct ctdluser));
-               memcpy(&usbuf, cdbus->ptr, ((cdbus->len > sizeof(struct ctdluser)) ?  sizeof(struct ctdluser) : cdbus->len));
-               cdb_free(cdbus);
+               memcpy(&usbuf, cdbus.ptr, ((cdbus.len > sizeof(struct ctdluser)) ?  sizeof(struct ctdluser) : cdbus.len));
                if ((usbuf.flags & US_NEEDVALID) && (usbuf.axlevel > AxDeleted)) {
                        cprintf("%d %s\n", MORE_DATA, usbuf.fullname);
                        cdb_close_cursor(CDB_USERS);