/*
+ * $Id$
+ *
* citserver's main() function lives here.
+ *
+ * Copyright (c) 1987-2010 by the citadel.org team
*
- * $Id$
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "sysdep.h"
int relh=0;
int home=0;
int dbg=0;
+ int have_log=0;
+ int have_minus_x=0;
char relhome[PATH_MAX]="";
char ctdldir[PATH_MAX]=CTDLDIR;
#ifdef HAVE_RUN_DIR
/* -x specifies the desired logging level */
else if (!strncmp(argv[a], "-x", 2)) {
verbosity = atoi(&argv[a][2]);
+ have_minus_x = 1;
}
else if (!strncmp(argv[a], "-h", 2)) {
}
else if (!strncmp(argv[a], "-t", 2)) {
- freopen(&argv[a][2], "w", stderr);
+ if (freopen(&argv[a][2], "w", stderr) != stderr)
+ {
+ CtdlLogPrintf(CTDL_EMERG,
+ "unable to open your trace log [%s]: %s",
+ &argv[a][2],
+ strerror(errno));
+ exit(1);
+ }
+ have_log = 1;
}
else if (!strncmp(argv[a], "-D", 2)) {
}
+ if (have_minus_x && running_as_daemon && have_log)
+ print_to_logfile = 1;
+
calc_dirs_n_files(relh, home, relhome, ctdldir, dbg);
/* daemonize, if we were asked to */
if (running_as_daemon) {
CtdlLogPrintf(CTDL_NOTICE,
"*** Citadel server engine v%d.%02d (build %s) ***\n",
(REV_LEVEL/100), (REV_LEVEL%100), svn_revision());
- CtdlLogPrintf(CTDL_NOTICE, "Copyright (C) 1987-2008 by the Citadel development team.\n");
+ CtdlLogPrintf(CTDL_NOTICE, "Copyright (C) 1987-2010 by the Citadel development team.\n");
CtdlLogPrintf(CTDL_NOTICE, "This program is distributed under the terms of the GNU "
"General Public License.\n");
CtdlLogPrintf(CTDL_NOTICE, "\n");
#else // HAVE_GETPWUID_R
pwp = NULL;
#endif // HAVE_GETPWUID_R
- mkdir(ctdl_run_dir, 0755);
- chown(ctdl_run_dir, config.c_ctdluid, (pwp==NULL)?-1:pw.pw_gid);
+
+ if ((mkdir(ctdl_run_dir, 0755) != 0) && (errno != EEXIST))
+ CtdlLogPrintf(CTDL_EMERG,
+ "unable to create run directory [%s]: %s",
+ ctdl_run_dir, strerror(errno));
+
+ if (chown(ctdl_run_dir, config.c_ctdluid, (pwp==NULL)?-1:pw.pw_gid) != 0)
+ CtdlLogPrintf(CTDL_EMERG,
+ "unable to set the access rights for [%s]: %s",
+ ctdl_run_dir, strerror(errno));
}