cdbqr = cdb_fetch(CDB_ROOMS, lowercase_name, strlen(lowercase_name));
// If that didn't work, try the user's personal namespace
- if (cdbqr.len == 0) {
+ if (cdbqr.ptr == NULL) {
snprintf(personal_lowercase_name, sizeof personal_lowercase_name, "%010ld.%s", CC->user.usernum, lowercase_name);
cdbqr = cdb_fetch(CDB_ROOMS, personal_lowercase_name, strlen(personal_lowercase_name));
}
- if (cdbqr.len > 0) {
+ if (cdbqr.ptr != NULL) {
memcpy(qrbuf, cdbqr.ptr, ((cdbqr.len > sizeof(struct ctdlroom)) ? sizeof(struct ctdlroom) : cdbqr.len));
room_sanity_check(qrbuf);
return (0);
memset(flbuf, 0, sizeof(struct floor));
cdbfl = cdb_fetch(CDB_FLOORTAB, &floor_num, sizeof(int));
- if (cdbfl.len > 0) {
+ if (cdbfl.ptr != NULL) {
memcpy(flbuf, cdbfl.ptr, ((cdbfl.len > sizeof(struct floor)) ? sizeof(struct floor) : cdbfl.len));
}
else {
cdb_rewind(CDB_ROOMS);
- while (cdbqr = cdb_next_item(CDB_ROOMS), cdbqr.len>0) {
+ while (cdbqr = cdb_next_item(CDB_ROOMS), cdbqr.ptr!=NULL) {
memset(&qrbuf, 0, sizeof(struct ctdlroom));
memcpy(&qrbuf, cdbqr.ptr, ((cdbqr.len > sizeof(struct ctdlroom)) ? sizeof(struct ctdlroom) : cdbqr.len) );
room_sanity_check(&qrbuf);
void delete_msglist(struct ctdlroom *whichroom) {
struct cdbdata cdbml;
- // Make sure the msglist we're deleting actually exists, otherwise
- // libdb will complain when we try to delete an invalid record
+ // Make sure the msglist we're deleting actually exists; don't try to delete an invalid record
cdbml = cdb_fetch(CDB_MSGLISTS, &whichroom->QRnumber, sizeof(long));
- if (cdbml.len > 0) {
- // Go ahead and delete it
+ if (cdbml.ptr != NULL) {
+ // ok it exists, go ahead and delete it
cdb_delete(CDB_MSGLISTS, &whichroom->QRnumber, sizeof(long));
}
}
struct cdbdata cdbfr;
cdbfr = cdb_fetch(CDB_MSGLISTS, &roomnum, sizeof(long));
- if (cdbfr.len == 0) {
+ if (cdbfr.ptr == NULL) {
syslog(LOG_ERR, "room_ops: no msglist for room %ld", roomnum);
*msgs = malloc(sizeof(long)); // dummy buffer
*msgs[0] = 0;