removed the -s option
[psensor.git] / src / server / server.c
index 25e4d27..a10a244 100644 (file)
@@ -45,6 +45,7 @@
 #include "psensor_json.h"
 #include "url.h"
 #include "server.h"
+#include "slog.h"
 
 static const char *DEFAULT_LOG_FILE = "/var/log/psensor-server.log";
 
@@ -53,7 +54,7 @@ static const char *DEFAULT_LOG_FILE = "/var/log/psensor-server.log";
 
 static const char *program_name;
 
-#define DEFAULT_PORT 3131
+static const int DEFAULT_PORT = 3131;
 
 #define PAGE_NOT_FOUND (_("<html><body><p>"\
 "Page not found - Go to <a href='/'>Main page</a></p></body>"))
@@ -65,6 +66,7 @@ static struct option long_options[] = {
        {"wdir", required_argument, 0, 'w'},
        {"debug", required_argument, 0, 'd'},
        {"log-file", required_argument, 0, 'l'},
+       {"sensor-log-file", required_argument, 0, 0},
        {0, 0, 0, 0}
 };
 
@@ -105,6 +107,7 @@ void print_help()
        puts(_("  -d, --debug=LEVEL     "
               "set the debug level, integer between 0 and 3"));
        puts(_("  -l, --log-file=PATH   set the log file to PATH"));
+       puts(_("  -s, --sensor-log-file=PATH set the sensor log file to PATH"));
 
        puts("");
        printf(_("Report bugs to: %s\n"), PACKAGE_BUGREPORT);
@@ -310,10 +313,8 @@ cbk_http_request(void *cls,
 int main(int argc, char *argv[])
 {
        struct MHD_Daemon *d;
-       int port = DEFAULT_PORT;
-       int optc;
-       int cmdok = 1;
-       char *log_file;
+       int port, opti, optc, cmdok;
+       char *log_file, *slog_file;
 
        program_name = argv[0];
 
@@ -327,9 +328,15 @@ int main(int argc, char *argv[])
        server_data.www_dir = NULL;
        server_data.psysinfo.interfaces = NULL;
        log_file = NULL;
-
-       while ((optc = getopt_long(argc, argv,
-                                  "vhp:w:d:", long_options, NULL)) != -1) {
+       slog_file = NULL;
+       port = DEFAULT_PORT;
+       cmdok = 1;
+
+       while ((optc = getopt_long(argc,
+                                  argv,
+                                  "vhp:w:d:l:",
+                                  long_options,
+                                  &opti)) != -1) {
                switch (optc) {
                case 'w':
                        if (optarg)
@@ -347,32 +354,34 @@ int main(int argc, char *argv[])
                        exit(EXIT_SUCCESS);
                case 'd':
                        log_level = atoi(optarg);
-                       log_printf(LOG_INFO,
-                                  _("Enables debug mode: %d"),
-                                  log_level);
+                       log_info(_("Enables debug mode: %d"), log_level);
                        break;
                case 'l':
                        if (optarg)
                                log_file = strdup(optarg);
                        break;
+               case 0:
+                       if (!strcmp(long_options[opti].name, "sensor-log-file"))
+                               slog_file = strdup(optarg);
+                       break;
                default:
                        cmdok = 0;
                        break;
                }
        }
 
-       if (!server_data.www_dir)
-               server_data.www_dir = strdup(DEFAULT_WWW_DIR);
-
-       if (!log_file)
-               log_file = strdup(DEFAULT_LOG_FILE);
-
        if (!cmdok || optind != argc) {
                fprintf(stderr, _("Try `%s --help' for more information.\n"),
                        program_name);
                exit(EXIT_FAILURE);
        }
 
+       if (!server_data.www_dir)
+               server_data.www_dir = strdup(DEFAULT_WWW_DIR);
+
+       if (!log_file)
+               log_file = strdup(DEFAULT_LOG_FILE);
+
        log_open(log_file);
 
        psensor_init();
@@ -395,9 +404,12 @@ int main(int argc, char *argv[])
                exit(EXIT_FAILURE);
        }
 
-       log_printf(LOG_INFO, _("Web server started on port: %d"), port);
-       log_printf(LOG_INFO, _("WWW directory: %s"), server_data.www_dir);
-       log_printf(LOG_INFO, _("URL: http://localhost:%d"), port);
+       log_info(_("Web server started on port: %d"), port);
+       log_info(_("WWW directory: %s"), server_data.www_dir);
+       log_info(_("URL: http://localhost:%d"), port);
+
+       if (slog_file)
+               slog_init(slog_file, server_data.sensors);
 
        while (!server_stop_requested) {
                pthread_mutex_lock(&mutex);
@@ -410,10 +422,14 @@ int main(int argc, char *argv[])
 
                psensor_log_measures(server_data.sensors);
 
+               slog_write_sensors(server_data.sensors);
+
                pthread_mutex_unlock(&mutex);
                sleep(5);
        }
 
+       slog_close();
+
        MHD_stop_daemon(d);
 
        /* sanity cleanup for valgrind */