]> code.citadel.org Git - citadel.git/blobdiff - citadel/control.c
* Use syslog-compatible logging levels in lprintf(); the loglevel chosen
[citadel.git] / citadel / control.c
index 8a507f22c7edceae28d93a5b3570428657cc356d..973c10fd448091d9d391495b82fd7702b0d0e1c6 100644 (file)
 #include <string.h>
 #include <errno.h>
 #include <limits.h>
-#include <syslog.h>
 #include <sys/types.h>
 #include "citadel.h"
 #include "server.h"
 #include "control.h"
-#include "dynloader.h"
+#include "serv_extensions.h"
 #include "sysdep_decls.h"
 #include "support.h"
 #include "config.h"
@@ -50,7 +49,7 @@
 #endif
 
 struct CitControl CitControl;
-struct config config;
+extern struct config config;
 FILE *control_fp = NULL;
 
 /*
@@ -81,7 +80,7 @@ void get_control(void)
                }
        }
        if (control_fp == NULL) {
-               lprintf(1, "ERROR opening citadel.control: %s\n",
+               lprintf(CTDL_ALERT, "ERROR opening citadel.control: %s\n",
                        strerror(errno));
                return;
        }
@@ -180,7 +179,7 @@ void cmd_conf(char *argbuf)
                cprintf("%s\n", config.c_bbs_city);
                cprintf("%s\n", config.c_sysadm);
                cprintf("%d\n", config.c_maxsessions);
-               cprintf("%s\n", config.c_net_password);
+               cprintf("xxx\n"); /* placeholder -- field no longer in use */
                cprintf("%d\n", config.c_userpurge);
                cprintf("%d\n", config.c_roompurge);
                cprintf("%s\n", config.c_logpages);
@@ -190,12 +189,26 @@ void cmd_conf(char *argbuf)
                cprintf("%d\n", config.c_max_workers);
                cprintf("%d\n", config.c_pop3_port);
                cprintf("%d\n", config.c_smtp_port);
-               cprintf("0\n"); /* position 25 no longer exists */
+               cprintf("%d\n", config.c_rfc822_strict_from);
                cprintf("%d\n", config.c_aide_zap);
                cprintf("%d\n", config.c_imap_port);
                cprintf("%ld\n", config.c_net_freq);
                cprintf("%d\n", config.c_disable_newu);
                cprintf("%d\n", config.c_aide_mailboxes);
+               cprintf("%d\n", config.c_purge_hour);
+#ifdef HAVE_LDAP
+               cprintf("%s\n", config.c_ldap_host);
+               cprintf("%d\n", config.c_ldap_port);
+               cprintf("%s\n", config.c_ldap_base_dn);
+               cprintf("%s\n", config.c_ldap_bind_dn);
+               cprintf("%s\n", config.c_ldap_bind_pw);
+#else
+               cprintf("\n");
+               cprintf("0\n");
+               cprintf("\n");
+               cprintf("\n");
+               cprintf("\n");
+#endif
                cprintf("000\n");
        }
 
@@ -270,8 +283,7 @@ void cmd_conf(char *argbuf)
                                        config.c_maxsessions = 1;
                                break;
                        case 15:
-                               safestrncpy(config.c_net_password, buf,
-                                           sizeof config.c_net_password);
+                               /* placeholder -- field no longer in use */
                                break;
                        case 16:
                                config.c_userpurge = atoi(buf);
@@ -306,7 +318,9 @@ void cmd_conf(char *argbuf)
                        case 24:
                                config.c_smtp_port = atoi(buf);
                                break;
-                               /* case 25 no longer exists */
+                       case 25:
+                               config.c_rfc822_strict_from = atoi(buf);
+                               break;
                        case 26:
                                config.c_aide_zap = atoi(buf);
                                if (config.c_aide_zap != 0)
@@ -328,6 +342,33 @@ void cmd_conf(char *argbuf)
                                if (config.c_aide_mailboxes != 0)
                                        config.c_aide_mailboxes = 1;
                                break;
+                       case 31:
+                               if ((config.c_purge_hour >= 0)
+                                  && (config.c_purge_hour <= 23)) {
+                                       config.c_purge_hour = atoi(buf);
+                               }
+                               break;
+#ifdef HAVE_LDAP
+                       case 32:
+                               safestrncpy(config.c_ldap_host, buf,
+                                           sizeof config.c_ldap_host);
+                               break;
+                       case 33:
+                               config.c_ldap_port = atoi(buf);
+                               break;
+                       case 34:
+                               safestrncpy(config.c_ldap_base_dn, buf,
+                                           sizeof config.c_ldap_base_dn);
+                               break;
+                       case 35:
+                               safestrncpy(config.c_ldap_bind_dn, buf,
+                                           sizeof config.c_ldap_bind_dn);
+                               break;
+                       case 36:
+                               safestrncpy(config.c_ldap_bind_pw, buf,
+                                           sizeof config.c_ldap_bind_pw);
+                               break;
+#endif
                        }
                        ++a;
                }
@@ -360,8 +401,8 @@ void cmd_conf(char *argbuf)
        else if (!strcasecmp(cmd, "PUTSYS")) {
                extract(confname, argbuf, 1);
                cprintf("%d %s\n", SEND_LISTING, confname);
-               confptr =
-                   CtdlReadMessageBody("000", config.c_maxmsglen, NULL);
+               confptr = CtdlReadMessageBody("000",
+                               config.c_maxmsglen, NULL, 0);
                CtdlPutSysConfig(confname, confptr);
                phree(confptr);
        }