]> code.citadel.org Git - citadel.git/blobdiff - citadel/control.c
Lotsa stuff. See the changeLog for more details.
[citadel.git] / citadel / control.c
index d6623b99980503d627e678b46c563bedcc80200e..e69b42a413e48d22258eff681aac96d86b4905b7 100644 (file)
@@ -16,6 +16,7 @@
 #include <ctype.h>
 #include <string.h>
 #include <errno.h>
+#include <limits.h>
 #include <pthread.h>
 #include <syslog.h>
 #include "citadel.h"
@@ -25,6 +26,8 @@
 #include "support.h"
 #include "config.h"
 #include "msgbase.h"
+#include "tools.h"
+#include "room_ops.h"
 
 struct CitControl CitControl;
 struct config config;
@@ -88,6 +91,20 @@ long get_new_user_number(void) {
 
 
 
+/*
+ * get_new_room_number()  -  Obtain a new, unique ID to be used for a room.
+ */
+long get_new_room_number(void) {
+       begin_critical_section(S_CONTROL);
+       get_control();
+       ++CitControl.MMnextroom;
+       put_control();
+       end_critical_section(S_CONTROL);
+       return(CitControl.MMnextroom);
+       }
+
+
+
 /* 
  * Get or set global configuration options
  */
@@ -127,6 +144,8 @@ void cmd_conf(char *argbuf) {
                cprintf("%d\n", config.c_maxsessions);
                cprintf("%s\n", config.c_net_password);
                cprintf("%d\n", config.c_userpurge);
+               cprintf("%d\n", config.c_roompurge);
+               cprintf("%s\n", config.c_logpages);
                cprintf("000\n");
                }
 
@@ -180,6 +199,11 @@ void cmd_conf(char *argbuf) {
                                break;
                        case 16: config.c_userpurge = atoi(buf);
                                break;
+                       case 17: config.c_roompurge = atoi(buf);
+                               break;
+                       case 18: strncpy(config.c_logpages,
+                                       buf, ROOMNAMELEN);
+                               break;
                                }
                    ++a;
                    }
@@ -188,6 +212,9 @@ void cmd_conf(char *argbuf) {
                         "Global system configuration edited by %s",
                         CC->curr_user);
                aide_message(buf);
+
+               if (strlen(config.c_logpages) > 0)
+                       create_room(config.c_logpages, 4, "", 0);
                }
 
        else {