/*
- * Traverse the room file...
+ * Iterate through the room table, performing a callback for each room.
*/
void CtdlForEachRoom(ForEachRoomCallBack CB, void *in_data)
{
}
/*
- * Traverse the room file...
+ * 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)
{
room_sanity_check(&qrbuf);
if (qrbuf.QRflags & QR_INUSE)
{
- OneRoomNetCfg* RNCfg;
+ OneRoomNetCfg *RNCfg;
RNCfg = CtdlGetNetCfgForRoom(qrbuf.QRnumber);
- if ((RNCfg != NULL) &&
- ((filter == maxRoomNetCfg) ||
- (RNCfg->NetConfigs[filter] != NULL)))
+ if ((RNCfg != NULL) && ((filter == maxRoomNetCfg) || (RNCfg->NetConfigs[filter] != NULL)))
{
CB(&qrbuf, in_data, RNCfg);
+ FreeRoomNetworkStruct(&RNCfg);
}
}
}
{
struct floor flbuf;
char filename[PATH_MAX];
+ char configdbkeyname[25];
syslog(LOG_NOTICE, "Deleting room <%s>", qrbuf->QRname);
assoc_file_name(filename, sizeof filename, qrbuf, ctdl_image_dir);
unlink(filename);
- /* Delete the room's network config file */
- assoc_file_name(filename, sizeof filename, qrbuf, ctdl_netcfg_dir);
- unlink(filename);
+ /* Delete the room's network configdb entry */
+ netcfg_keyname(configdbkeyname, qrbuf->QRnumber);
+ CtdlDelConfig(configdbkeyname);
/* Delete the messages in the room
* (Careful: this opens an S_ROOMS critical section!)
}
-
/*
* Check access control for deleting a room
*/