X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/e7eb3a2744aa45179daea235800753d3d1955338..5dba54ab01bce6ca8a6f1fd64b46cd304501b596:/server/stats.c diff --git a/server/stats.c b/server/stats.c index 772be13..ba8a223 100644 --- a/server/stats.c +++ b/server/stats.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder - * Copyright (C) 2007, 2008 Richard Kettlewell + * Copyright (C) 2007-2009 Richard Kettlewell * * 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 @@ -15,6 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +/** @file server/stats.c + * @brief Generate server statistics + * + * This is done in a subprogram because it can be quite slow and we don't want + * to wedge the rest of the server for the duration. + */ #include "disorder-server.h" @@ -30,7 +36,7 @@ static const struct option options[] = { }; /* display usage message and terminate */ -static void help(void) { +static void attribute((noreturn)) help(void) { xprintf("Usage:\n" " disorder-stats [OPTIONS]\n" "Options:\n" @@ -51,7 +57,7 @@ int main(int argc, char **argv) { set_progname(argv); mem_init(); - if(!setlocale(LC_CTYPE, "")) fatal(errno, "error calling setlocale"); + if(!setlocale(LC_CTYPE, "")) disorder_fatal(errno, "error calling setlocale"); while((n = getopt_long(argc, argv, "hVc:dDSs", options, 0)) >= 0) { switch(n) { case 'h': help(); @@ -61,15 +67,16 @@ int main(int argc, char **argv) { case 'D': debugging = 0; break; case 'S': logsyslog = 0; break; case 's': logsyslog = 1; break; - default: fatal(0, "invalid option"); + default: disorder_fatal(0, "invalid option"); } } if(logsyslog) { openlog(progname, LOG_PID, LOG_DAEMON); log_default = &log_syslog; } - if(config_read(0)) - fatal(0, "cannot read configuration"); + config_per_user = 0; + if(config_read(0, NULL)) + disorder_fatal(0, "cannot read configuration"); trackdb_init(TRACKDB_NO_RECOVER); trackdb_open(TRACKDB_NO_UPGRADE); stats = trackdb_stats(0);