]> code.citadel.org Git - citadel.git/blobdiff - citadel/citserver.c
WebCit now detects whether the Citadel server has Sieve support
[citadel.git] / citadel / citserver.c
index 088d6ceba92e1d1b6a30ef27d74951f2d429bd43..d09599ad363dc4c1d2d4b8b1b2edccb0cff607e3 100644 (file)
@@ -44,6 +44,7 @@
 #include "citadel.h"
 #include "server.h"
 #include "sysdep_decls.h"
+#include "threads.h"
 #include "citserver.h"
 #include "config.h"
 #include "database.h"
@@ -196,13 +197,13 @@ void master_cleanup(int exitcode) {
        /* Close the AdjRefCount queue file */
        AdjRefCount(-1, 0);
 
+       /* Do system-dependent stuff */
+       sysdep_master_cleanup();
+       
        /* Close databases */
        lprintf(CTDL_INFO, "Closing databases\n");
        close_databases();
 
-       /* Do system-dependent stuff */
-       sysdep_master_cleanup();
-       
 #ifdef DEBUG_MEMORY_LEAKS
        dump_heap();
 #endif
@@ -292,18 +293,26 @@ void cmd_info(void) {
        cprintf("0\n"); /* 1 = no, this server is not LDAP-enabled */
 #endif
 
-       if (config.c_auth_mode == 1) {
-               cprintf("1\n"); /* "create new user" never works with host auth */
+       if (config.c_auth_mode == AUTHMODE_NATIVE) {
+               cprintf("%d\n", config.c_disable_newu);
        }
        else {
-               cprintf("%d\n", config.c_disable_newu); /* otherwise, site defined */
+               cprintf("1\n"); /* "create new user" does not work with non-native auth modes */
        }
 
        cprintf("%s\n", config.c_default_cal_zone);
+
        /* Output load averages */
        cprintf("%f\n", CtdlThreadLoadAvg);
        cprintf("%f\n", CtdlThreadWorkerAvg);
        cprintf("%d\n", CtdlThreadGetCount());
+
+       /* Does this server support Sieve mail filtering? */
+#ifdef HAVE_LIBSIEVE
+       cprintf("1\n");         /* yes */
+#else
+       cprintf("0\n");         /* no */
+#endif
        
        cprintf("000\n");
 }
@@ -990,7 +999,7 @@ void citproto_begin_session() {
  */
 void do_command_loop(void) {
        char cmdbuf[SIZ];
-       char *old_name = NULL;
+       const char *old_name = NULL;
        
        old_name = CtdlThreadName("do_command_loop");