/*
* Server functions which perform operations on room objects.
*
- * Copyright (c) 1987-2016 by the citadel.org team
+ * Copyright (c) 1987-2017 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 3.
return(om_ok);
}
+
/*
* Check to see whether we have permission to post a message in the current
* room. Returns a *CITADEL ERROR CODE* and puts a message in errmsgbuf, or
}
+
/*
* Check whether the current user has permission to delete messages from
* the current room (returns 1 for yes, 0 for no)
return(0);
}
+
/*
* Retrieve access control information for any user/room pair.
* Yes, it has a couple of gotos. If you don't like that, go die in a car fire.
/* Know the room ... but not if it's the page log room, or if the
* caller specified that we're only entering this room transiently.
*/
- if ((strcasecmp(CCC->room.QRname, CtdlGetConfigStr("c_logpages"))) && (transiently == 0))
- {
+ int add_room_to_known_list = 1;
+ if (transiently == 1) {
+ add_room_to_known_list = 0;
+ }
+ char *c_logpages = CtdlGetConfigStr("c_logpages");
+ if ( (c_logpages != NULL) && (!strcasecmp(CCC->room.QRname, c_logpages)) ) {
+ add_room_to_known_list = 0;
+ }
+ if (add_room_to_known_list) {
vbuf.v_flags = vbuf.v_flags & ~V_FORGET & ~V_LOCKOUT;
vbuf.v_flags = vbuf.v_flags | V_ACCESS;
}
if (retnew != NULL) *retnew = new_messages;
if (retoldest != NULL) *retoldest = oldest_message;
if (retnewest != NULL) *retnewest = newest_message;
- MSG_syslog(LOG_DEBUG, "<%s> %d new of %d total messages, oldest=%ld, newest=%ld",
+ syslog(LOG_DEBUG, "room_ops: %s : %d new of %d total messages, oldest=%ld, newest=%ld",
CCC->room.QRname, new_messages, total_messages, oldest_message, newest_message
);
long owner = 0L;
char actual_old_name[ROOMNAMELEN];
- MSG_syslog(LOG_DEBUG, "CtdlRenameRoom(%s, %s, %d)", old_name, new_name, new_floor);
+ syslog(LOG_DEBUG, "room_ops: CtdlRenameRoom(%s, %s, %d)", old_name, new_name, new_floor);
if (new_floor >= 0) {
fl = CtdlGetCachedFloor(new_floor);
lgetfloor(&flbuf, old_floor);
--flbuf.f_ref_count;
lputfloor(&flbuf, old_floor);
- MSG_syslog(LOG_DEBUG, "Reference count for floor %d is now %d", old_floor, flbuf.f_ref_count);
+ syslog(LOG_DEBUG, "room_ops: reference count for floor %d is now %d", old_floor, flbuf.f_ref_count);
lgetfloor(&flbuf, new_floor);
++flbuf.f_ref_count;
lputfloor(&flbuf, new_floor);
- MSG_syslog(LOG_DEBUG, "Reference count for floor %d is now %d", new_floor, flbuf.f_ref_count);
+ syslog(LOG_DEBUG, "room_ops: reference count for floor %d is now %d", new_floor, flbuf.f_ref_count);
}
/* ...and everybody say "YATTA!" */
char old_name[ROOMNAMELEN];
static int seq = 0;
- syslog(LOG_NOTICE, "Scheduling room <%s> for deletion", qrbuf->QRname);
+ syslog(LOG_NOTICE, "room_ops: scheduling room <%s> for deletion", qrbuf->QRname);
safestrncpy(old_name, qrbuf->QRname, sizeof old_name);
CtdlGetRoom(qrbuf, qrbuf->QRname);
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);
+ syslog(LOG_NOTICE, "room_ops: deleting room <%s>", qrbuf->QRname);
/* Delete the room's network configdb entry */
netcfg_keyname(configdbkeyname, qrbuf->QRnumber);
struct floor flbuf;
visit vbuf;
- MARK_syslog(LOG_DEBUG, "CtdlCreateRoom(name=%s, type=%d, view=%d)", new_room_name, new_room_type, new_room_view);
+ syslog(LOG_DEBUG, "room_ops: CtdlCreateRoom(name=%s, type=%d, view=%d)", new_room_name, new_room_type, new_room_view);
if (CtdlGetRoom(&qrbuf, new_room_name) == 0) {
- MARK_syslog(LOG_DEBUG, "Cannot create room <%s> - already exists", new_room_name);
+ syslog(LOG_DEBUG, "room_ops: cannot create room <%s> - already exists", new_room_name);
return(0);
}