]> code.citadel.org Git - citadel.git/blobdiff - citadel/server/room_ops.c
Changed the API for cdb_rewind() / cdb_next_item() to make the caller hold the cursor
[citadel.git] / citadel / server / room_ops.c
index 7fefdbbf3d4b51b8ceb888823c4327635ce1700d..21ab47ac800e3ecb1893cc58ab1c9f27afb35108 100644 (file)
@@ -527,8 +527,8 @@ void CtdlForEachRoom(ForEachRoomCallBack callback_func, void *in_data) {
        struct ctdlroom qrbuf;
        struct cdbdata *cdbqr;
 
-       cdb_rewind(CDB_ROOMS);
-       while (cdbqr = cdb_next_item(CDB_ROOMS), cdbqr != NULL) {
+       void *cur = cdb_rewind(CDB_ROOMS);
+       while (cdbqr = cdb_next_item(cur, CDB_ROOMS), cdbqr != NULL) {
                memset(&qrbuf, 0, sizeof(struct ctdlroom));
                memcpy(&qrbuf, cdbqr->ptr, ((cdbqr->len > sizeof(struct ctdlroom)) ?  sizeof(struct ctdlroom) : cdbqr->len) );
                cdb_free(cdbqr);