// Copyright (c) 2007-2023 by the citadel.org team
//
// This program is open source software. Use, duplication or disclosure
-// are subject to the terms of the GNU General Public License, version 3.
+// is subject to the terms of the GNU General Public License, version 3.
#include "../../sysdep.h"
#include <stdlib.h>
int msgs, new;
int ret;
struct ctdluser temp;
- struct cdbdata *cdbus;
+ struct cdbkeyval cdbus;
int ra;
StrBuf *rights;
// Traverse the userlist
rights = NewStrBuf();
- void *cur = cdb_rewind(CDB_USERS);
- while (cdbus = cdb_next_item(cur, CDB_USERS), cdbus != NULL) {
+ cdb_rewind(CDB_USERS);
+ while (cdbus = cdb_next_item(CDB_USERS), cdbus.val.ptr!=NULL) { // always read through to the end
memset(&temp, 0, sizeof temp);
- memcpy(&temp, cdbus->ptr, sizeof temp);
- cdb_free(cdbus);
+ memcpy(&temp, cdbus.val.ptr, sizeof temp);
CtdlRoomAccess(&CC->room, &temp, &ra, NULL);
if (!IsEmptyStr(temp.fullname)) {
// Search for the specified user
ret = (-1);
- valid = validate_recipients(Params[3].Key, NULL, 0);
+ valid = validate_recipients(Params[3].Key, 0);
if (valid != NULL) {
if (valid->num_local == 1) {
ret = CtdlGetUser(&temp, valid->recp_local);