/*
* Iterate through the room table, performing a callback for each room that has a netconfig entry.
*/
-void CtdlForEachNetCfgRoom(ForEachRoomNetCfgCallBack CB, void *in_data, RoomNetCfg filter)
+void CtdlForEachNetCfgRoom(ForEachRoomNetCfgCallBack CB, void *in_data)
{
struct ctdlroom qrbuf;
struct cdbdata *cdbqr;
while (cdbqr = cdb_next_item(CDB_ROOMS), cdbqr != NULL) {
memset(&qrbuf, 0, sizeof(struct ctdlroom));
- memcpy(&qrbuf, cdbqr->ptr,
- ((cdbqr->len > sizeof(struct ctdlroom)) ?
- sizeof(struct ctdlroom) : cdbqr->len)
- );
+ memcpy(&qrbuf, cdbqr->ptr, ((cdbqr->len > sizeof(struct ctdlroom)) ? sizeof(struct ctdlroom) : cdbqr->len));
cdb_free(cdbqr);
room_sanity_check(&qrbuf);
if (qrbuf.QRflags & QR_INUSE)
{
OneRoomNetCfg *RNCfg;
RNCfg = CtdlGetNetCfgForRoom(qrbuf.QRnumber);
- if ((RNCfg != NULL) && ((filter == maxRoomNetCfg) || (RNCfg->NetConfigs[filter] != NULL)))
+ if (RNCfg != NULL)
{
CB(&qrbuf, in_data, RNCfg);
FreeRoomNetworkStruct(&RNCfg);
/* Check for new mail */
newmailcount = NewMailCount();
- /* set info to 1 if the user needs to read the room's info file */
- if (CCC->room.QRinfo > vbuf.v_lastseen) {
+ /* Set info to 1 if the room banner is new since our last visit.
+ * Some clients only want to display it when it changes.
+ */
+ if (CCC->room.msgnum_info > vbuf.v_lastseen) {
info = 1;
}
void CtdlDeleteRoom(struct ctdlroom *qrbuf)
{
struct floor flbuf;
- char filename[PATH_MAX];
char configdbkeyname[25];
syslog(LOG_NOTICE, "Deleting room <%s>", qrbuf->QRname);
- /* Delete the info file */
- assoc_file_name(filename, sizeof filename, qrbuf, ctdl_info_dir);
- unlink(filename);
-
- /* Delete the image file */
- assoc_file_name(filename, sizeof filename, qrbuf, ctdl_image_dir);
- unlink(filename);
-
/* Delete the room's network configdb entry */
netcfg_keyname(configdbkeyname, qrbuf->QRnumber);
CtdlDelConfig(configdbkeyname);