struct nntp_msglist nm;
struct cdbdata *cdbfr;
- cdbfr = cdb_fetch(CDB_MSGLISTS, &qrbuf->QRnumber, sizeof(long));
- if (cdbfr != NULL) {
- nm.msgnums = (long*)cdbfr->ptr;
- cdbfr->ptr = NULL; // (this needs attention if we move to LMDB)
- nm.num_msgs = cdbfr->len / sizeof(long);
- cdbfr->len = 0;
- cdb_free(cdbfr);
- }
- else {
+ nm.num_msgs = CtdlFetchMsgList(qrbuf->QRnumber, &nm.msgnums);
+ if (nm.msgnums < 0) {
nm.num_msgs = 0;
nm.msgnums = NULL;
}
memcpy(*msgs, cdbfr->ptr, cdbfr->len);
num_msgs = cdbfr->len / sizeof(long);
cdb_free(cdbfr);
+ // BEGIN diagnostic section remove this
+ syslog(LOG_DEBUG, "\033[7mCtdlFetchMsgList(%ld) %d messages\033[0m", roomnum, num_msgs);
+ int i;
+ long *p = *msgs;
+ long msgnum;
+ if (num_msgs>0) for (i=0; i<num_msgs; ++i) {
+ memcpy(&msgnum, p, sizeof(long));
+ p++;
+ syslog(LOG_DEBUG, "\033[7m%ld\033[0m", msgnum);
+ }
+ // END diagnostic section remove this
return(num_msgs);
}