/*
* CtdlGetRoom() - retrieve room data from disk
*/
-int CtdlGetRoom(struct ctdlroom *qrbuf, char *room_name)
+int CtdlGetRoom(struct ctdlroom *qrbuf, const char *room_name)
{
struct cdbdata *cdbqr;
char lowercase_name[ROOMNAMELEN];
char personal_lowercase_name[ROOMNAMELEN];
- char *dptr, *sptr, *eptr;
+ const char *sptr;
+ char *dptr, *eptr;
dptr = lowercase_name;
sptr = room_name;
/*
* Traverse the room file...
*/
-void CtdlForEachRoom(void (*CallBack) (struct ctdlroom *EachRoom, void *out_data),
- void *in_data)
+void CtdlForEachRoom(ForEachRoomCallBack CB, void *in_data)
{
struct ctdlroom qrbuf;
struct cdbdata *cdbqr;
cdb_free(cdbqr);
room_sanity_check(&qrbuf);
if (qrbuf.QRflags & QR_INUSE) {
- (*CallBack)(&qrbuf, in_data);
+ CB(&qrbuf, in_data);
+ }
+ }
+}
+
+/*
+ * Traverse the room file...
+ */
+void CtdlForEachNetCfgRoom(ForEachRoomNetCfgCallBack CB,
+ void *in_data,
+ RoomNetCfg filter)
+{
+ struct ctdlroom qrbuf;
+ struct cdbdata *cdbqr;
+
+ cdb_rewind(CDB_ROOMS);
+
+ 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)
+ );
+ 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)))
+ {
+ CB(&qrbuf, in_data, RNCfg);
+ }
}
}
}
}
/*
- * get room parameters (aide or room aide command)
+ * get room parameters (admin or room admin command)
*/
void cmd_getr(char *cmdbuf)
{
/*
- * set room parameters (aide or room aide command)
+ * set room parameters (admin or room admin command)
*/
void cmd_setr(char *args)
{
/*
- * get the name of the room aide for this room
+ * get the name of the room admin for this room
*/
void cmd_geta(char *cmdbuf)
{
/*
- * set the room aide for this room
+ * set the room admin for this room
*/
void cmd_seta(char *new_ra)
{
if (post_notice == 1) {
if (!IsEmptyStr(usbuf.fullname))
snprintf(buf, sizeof buf,
- "%s is now the room aide for \"%s\".\n",
+ "%s is now the room admin for \"%s\".\n",
usbuf.fullname, CC->room.QRname);
else
snprintf(buf, sizeof buf,
- "There is now no room aide for \"%s\".\n",
+ "There is now no room admin for \"%s\".\n",
CC->room.QRname);
- CtdlAideMessage(buf, "Aide Room Modification");
+ CtdlAideMessage(buf, "Admin Room Modification");
}
cprintf("%d Ok\n", CIT_OK);
}
*/
void cmd_rinf(char *gargs)
{
- char filename[128];
+ char filename[PATH_MAX];
char buf[SIZ];
FILE *info_fp;
}
/*
- * For normal rooms, just check for aide or room aide status.
+ * For normal rooms, just check for admin or room admin status.
*/
return(is_room_aide());
}
/*
- * aide command: kill the current room
+ * admin command: kill the current room
*/
void cmd_kill(char *argbuf)
{
}
/* If the room is private, and the system administrator has elected
- * to automatically grant room aide privileges, do so now.
+ * to automatically grant room admin privileges, do so now.
*/
if ((qrbuf.QRflags & QR_PRIVATE) && (CREATAIDE == 1)) {
qrbuf.QRroomaide = CC->user.usernum;
}
- /* Blog owners automatically become room aides of their blogs.
+ /* Blog owners automatically become room admins of their blogs.
* (In the future we will offer a site-wide configuration setting to suppress this behavior.)
*/
else if (new_room_view == VIEW_BLOG) {
qrbuf.QRroomaide = CC->user.usernum;
}
- /* Otherwise, set the room aide to undefined.
+ /* Otherwise, set the room admin to undefined.
*/
else {
qrbuf.QRroomaide = (-1L);
CtdlRegisterProtoHook(cmd_rdir, "RDIR", "List files in room directory");
CtdlRegisterProtoHook(cmd_getr, "GETR", "Get room parameters");
CtdlRegisterProtoHook(cmd_setr, "SETR", "Set room parameters");
- CtdlRegisterProtoHook(cmd_geta, "GETA", "Get the room aide name");
- CtdlRegisterProtoHook(cmd_seta, "SETA", "Set the room aide for this room");
+ CtdlRegisterProtoHook(cmd_geta, "GETA", "Get the room admin name");
+ CtdlRegisterProtoHook(cmd_seta, "SETA", "Set the room admin for this room");
CtdlRegisterProtoHook(cmd_rinf, "RINF", "Fetch room info file");
CtdlRegisterProtoHook(cmd_kill, "KILL", "Kill (delete) the current room");
CtdlRegisterProtoHook(cmd_cre8, "CRE8", "Create a new room");