X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fserver_main.c;h=10e366051bba31ac3e41c8d39d6f504112378752;hb=1e05f422343597adb7b3a6b32f6c538ffbff8314;hp=a71a5cfce821683a4c7d65fbab22acc85c21d031;hpb=74891a59d854ba5c34e909980b7ad28fd58195b3;p=citadel.git diff --git a/citadel/server_main.c b/citadel/server_main.c index a71a5cfce..10e366051 100644 --- a/citadel/server_main.c +++ b/citadel/server_main.c @@ -1,7 +1,7 @@ /* * citserver's main() function lives here. * - * Copyright (c) 1987-2017 by the citadel.org team + * Copyright (c) 1987-2019 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. @@ -28,12 +28,12 @@ #include "serv_extensions.h" #include "citadel_dirs.h" #include "user_ops.h" -#include "ecrash.h" uid_t ctdluid = 0; const char *CitadelServiceUDS="citadel-UDS"; const char *CitadelServiceTCP="citadel-TCP"; void go_threading(void); +int sanity_diag_mode = 0; /* @@ -87,10 +87,6 @@ int main(int argc, char **argv) struct passwd *p = NULL; #ifdef HAVE_RUN_DIR struct stat filestats; -#endif -#ifdef HAVE_BACKTRACE - eCrashParameters params; -// eCrashSymbolTable symbol_table; #endif /* initialize the master context */ @@ -98,7 +94,7 @@ int main(int argc, char **argv) InitializeMasterTSD(); /* parse command-line arguments */ - while ((a=getopt(argc, argv, "l:dh:x:t:B:Dru:")) != EOF) switch(a) { + while ((a=getopt(argc, argv, "l:dh:x:t:B:Dru:s:")) != EOF) switch(a) { case 'l': safestrncpy(facility, optarg, sizeof(facility)); @@ -159,6 +155,11 @@ int main(int argc, char **argv) } break; + /* -s tells the server to behave differently during sanity checks */ + case 's': + sanity_diag_mode = atoi(optarg); + break; + default: /* any other parameter makes it crash and burn */ fprintf(stderr, "citserver: usage: " @@ -213,15 +214,22 @@ int main(int argc, char **argv) syslog(LOG_INFO, " "); syslog(LOG_INFO, "*** Citadel server engine ***\n"); syslog(LOG_INFO, "Version %d (build %s) ***", REV_LEVEL, svn_revision()); - syslog(LOG_INFO, "Copyright (C) 1987-2017 by the Citadel development team."); - syslog(LOG_INFO, "This program is distributed under the terms of the GNU General Public License."); + syslog(LOG_INFO, "Copyright (C) 1987-2019 by the Citadel development team."); + syslog(LOG_INFO, " "); + syslog(LOG_INFO, "This program is open source software: you can redistribute it and/or"); + syslog(LOG_INFO, "modify it under the terms of the GNU General Public License, version 3."); + syslog(LOG_INFO, " "); + syslog(LOG_INFO, "This program is distributed in the hope that it will be useful,"); + syslog(LOG_INFO, "but WITHOUT ANY WARRANTY; without even the implied warranty of"); + syslog(LOG_INFO, "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"); + syslog(LOG_INFO, "GNU General Public License for more details."); syslog(LOG_INFO, " "); syslog(LOG_INFO, "%s", libcitadel_version_string()); #ifdef HAVE_RUN_DIR /* on some dists rundir gets purged on startup. so we need to recreate it. */ - if (stat(ctdl_run_dir, &filestats)==-1){ + if (stat(ctdl_run_dir, &filestats) == -1) { #ifdef HAVE_GETPWUID_R #ifdef SOLARIS_GETPWUID pwp = getpwuid_r(ctdluid, &pw, pwbuf, sizeof(pwbuf)); @@ -322,13 +330,11 @@ int main(int argc, char **argv) start_chkpwd_daemon(); } - /* * check, whether we're fired up another time after a crash. * if, post an aide message, so the admin has a chance to react. */ - checkcrash (); - + checkcrash(); /* * Now that we've bound the sockets, change to the Citadel user id and its