Server restart via command no longer requires running as a daemon , uses execv()...
[citadel.git] / citadel / modules / ctdlproto / serv_syscmds.c
index 3b21bc4fbd1d6dcfb79f4f1d591f3fe7990de943..8783cc291d55ace6ae2300fce9a42766e81dfe1d 100644 (file)
@@ -2,7 +2,7 @@
 /* 
  * Main source module for the Citadel server
  *
- * Copyright (c) 1987-2011 by the citadel.org team
+ * Copyright (c) 1987-2018 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.
 #include "serv_extensions.h"
 #include "ctdl_module.h"
 
-void cmd_log_get(char *argbuf)
-{
-       long HKLen;
-       const char *ch;
-       HashPos *Pos;
-       void *vptr;
-
-       if (CtdlAccessCheck(ac_aide)) return;
-
-       cprintf("%d Log modules enabled:\n", LISTING_FOLLOWS);
-
-       Pos = GetNewHashPos(LogDebugEntryTable, 0);
-
-       while (GetNextHashPos(LogDebugEntryTable, Pos, &HKLen, &ch, &vptr)) {
-               LogDebugEntry *E = (LogDebugEntry*)vptr;
-               cprintf("%s|%d\n", ch, *E->LogP);
-       }
-       
-       DeleteHashPos(&Pos);
-       cprintf("000\n");
-}
-void cmd_log_set(char *argbuf)
-{
-       void *vptr;
-       int lset;
-       int wlen;
-       char which[SIZ] = "";
-
-       if (CtdlAccessCheck(ac_aide)) return;
-
-       wlen = extract_token(which, argbuf, 0, '|', sizeof(which));
-       if (wlen < 0) wlen = 0;
-       lset = extract_int(argbuf, 1);
-       if (lset != 0) lset = 1;
-       if (GetHash(LogDebugEntryTable, which, wlen, &vptr) && 
-           (vptr != NULL))
-       {
-               LogDebugEntry *E = (LogDebugEntry*)vptr;
-               E->F(lset);
-               cprintf("%d %s|%d\n", CIT_OK, which, lset);
-       }
-       else {
-               cprintf("%d Log setting %s not known\n", 
-                       ERROR, which);
-       }
-}
-
 
 /*
  * Shut down the server
@@ -80,20 +33,12 @@ void cmd_down(char *argbuf) {
                int state = CIT_OK;
                restart_server = extract_int(argbuf, 0);
                
-               if (restart_server > 0)
-               {
+               if (restart_server > 0) {
                        Reply = "%d citserver will now shut down and automatically restart.\n";
                }
-               if ((restart_server > 0) && !running_as_daemon)
-               {
-                       syslog(LOG_ERR, "The user requested restart, but not running as daemon! Geronimooooooo!\n");
-                       Reply = "%d Warning: citserver is not running in daemon mode and is therefore unlikely to restart automatically.\n";
-                       state = ERROR;
-               }
                cprintf(Reply, state);
        }
-       else
-       {
+       else {
                cprintf(Reply, CIT_OK + SERVER_SHUTTING_DOWN); 
        }
        CC->kill_me = KILLME_SERVER_SHUTTING_DOWN;
@@ -126,16 +71,8 @@ void cmd_scdn(char *argbuf)
        if (CtdlAccessCheck(ac_aide)) return;
 
        new_state = extract_int(argbuf, 0);
-       if ((new_state == 2) || (new_state == 3))
-       {
+       if ((new_state == 2) || (new_state == 3)) {
                restart_server = 1;
-               if (!running_as_daemon)
-               {
-                       syslog(LOG_ERR, "The user requested restart, but not running as deamon! Geronimooooooo!\n");
-                       Reply = "%d %d Warning, not running in deamon mode. maybe we will come up again, but don't lean on it.\n";
-                       state = ERROR;
-               }
-
                restart_server = extract_int(argbuf, 0);
                new_state -= 2;
        }
@@ -145,16 +82,6 @@ void cmd_scdn(char *argbuf)
        cprintf(Reply, state, ScheduledShutdown);
 }
 
-/*
- * Manually initiate log file cull.
- */
-void cmd_cull(char *argbuf) {
-       if (CtdlAccessCheck(ac_internal)) return;
-       cdb_cull_logs();
-       cprintf("%d Database log file cull completed.\n", CIT_OK);
-}
-
-
 
 /*****************************************************************************/
 /*                      MODULE INITIALIZATION STUFF                          */
@@ -163,14 +90,9 @@ void cmd_cull(char *argbuf) {
 CTDL_MODULE_INIT(syscmd)
 {
        if (!threading) {
-               CtdlRegisterProtoHook(cmd_log_get, "LOGP", "Print Log-parameters");
-               CtdlRegisterProtoHook(cmd_log_set, "LOGS", "Set Log-parameters");
-
                CtdlRegisterProtoHook(cmd_down, "DOWN", "perform a server shutdown");
                CtdlRegisterProtoHook(cmd_halt, "HALT", "halt the server without exiting the server process");
                CtdlRegisterProtoHook(cmd_scdn, "SCDN", "schedule or cancel a server shutdown");
-
-               CtdlRegisterProtoHook(cmd_cull, "CULL", "Cull database logs");
        }
         /* return our id for the Log */
        return "syscmd";