#include "user_ops.h"
#include "housekeeping.h"
#include "svn_revision.h"
-#include "citadel_dirs.c"
+#include "citadel_dirs.h"
+
+#include "context.h"
#include "modules_init.h"
#include "ecrash.h"
const char *CitadelServiceTCP="citadel-TCP";
-extern struct CitContext masterCC;
-
void go_threading(void);
eCrashParameters params;
// eCrashSymbolTable symbol_table;
#endif
+
+#ifdef HAVE_GC
+ GC_INIT();
+ GC_find_leak = 1;
+#endif
+
+
/* initialise semaphores here. Patch by Matt and davew
* its called here as they are needed by CtdlLogPrintf for thread safety
*/
running_as_daemon = 1;
}
+ /* run a few stats if -s was specified */
+ else if (!strncmp(argv[a], "-s", 2)) {
+ statcount = atoi(&argv[a][2]);
+ }
+
/* -x specifies the desired logging level */
else if (!strncmp(argv[a], "-x", 2)) {
verbosity = atoi(&argv[a][2]);
else
safestrncpy(relhome, &argv[a][2],
sizeof relhome);
- home_specified = 1;
home=1;
}
CtdlLogPrintf(CTDL_EMERG, "citserver: usage: "
"citserver "
"[-lLogFacility] "
- "[-d] [-D] "
+ "[-d] [-D] [-s]"
" [-tTraceFile]"
" [-xLogLevel] [-hHomeDir]\n");
exit(1);
/**
* Load the user for the masterCC or create them if they don't exist
*/
- if (getuser(&masterCC.user, "SYS_Citadel"))
+ if (CtdlGetUser(&masterCC.user, "SYS_Citadel"))
{
/** User doesn't exist. We can't use create user here as the user number needs to be 0 */
strcpy (masterCC.user.fullname, "SYS_Citadel") ;
- putuser(&masterCC.user);
- getuser(&masterCC.user, "SYS_Citadel"); /** Just to be safe */
+ CtdlPutUser(&masterCC.user);
+ CtdlGetUser(&masterCC.user, "SYS_Citadel"); /** Just to be safe */
}
/*
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 ();
+
+
/*
* Now that we've bound the sockets, change to the Citadel user id and its
* corresponding group ids