From 85ecffeb0507a6cb77021390120b9412589fde9f Mon Sep 17 00:00:00 2001 From: Michael Hampton Date: Tue, 18 Jun 2002 16:34:07 +0000 Subject: [PATCH] * room_ops.c: Fix for old room record not being deleted when renaming baseroom or aideroom --- citadel/ChangeLog | 5 ++++- citadel/room_ops.c | 28 ++++++++++++++-------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/citadel/ChangeLog b/citadel/ChangeLog index 7f9d1d443..602467082 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,4 +1,8 @@ $Log$ + Revision 591.47 2002/06/18 16:34:06 error + * room_ops.c: Fix for old room record not being deleted when renaming + baseroom or aideroom + Revision 591.46 2002/06/16 21:01:11 ajc * Allow Aides to create rooms in other users' namespaces (if global access controls allow) @@ -3739,4 +3743,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant Fri Jul 10 1998 Art Cancro * Initial CVS import - diff --git a/citadel/room_ops.c b/citadel/room_ops.c index 70d81ab4e..8d83038c6 100644 --- a/citadel/room_ops.c +++ b/citadel/room_ops.c @@ -1096,6 +1096,20 @@ int CtdlRenameRoom(char *old_name, char *new_name, int new_floor) { qrbuf.QRfloor = new_floor; putroom(&qrbuf); + begin_critical_section(S_CONFIG); + + /* If baseroom/aideroom name changes, update config */ + if (!strncasecmp(old_name, config.c_baseroom, ROOMNAMELEN)) { + safestrncpy(config.c_baseroom, new_name, ROOMNAMELEN); + put_config(); + } + if (!strncasecmp(old_name, config.c_aideroom, ROOMNAMELEN)) { + safestrncpy(config.c_aideroom, new_name, ROOMNAMELEN); + put_config(); + } + + end_critical_section(S_CONFIG); + /* If the room name changed, then there are now two room * records, so we have to delete the old one. */ @@ -1108,20 +1122,6 @@ int CtdlRenameRoom(char *old_name, char *new_name, int new_floor) { end_critical_section(S_QUICKROOM); - begin_critical_section(S_CONFIG); - - /* If baseroom/aideroom name changes, update config */ - if (!strncasecmp(old_name, config.c_baseroom, ROOMNAMELEN)) { - safestrncpy(config.c_baseroom, new_name, ROOMNAMELEN); - put_config(); - } - if (!strncasecmp(old_name, config.c_aideroom, ROOMNAMELEN)) { - safestrncpy(config.c_aideroom, new_name, ROOMNAMELEN); - put_config(); - } - - end_critical_section(S_CONFIG); - /* Adjust the floor reference counts if necessary */ if (new_floor != old_floor) { lgetfloor(&flbuf, old_floor); -- 2.39.2