Must enable UDP when receiving ping packets too.
[umurmur.git] / src / main.c
index 8aa6c8d4ce37fd1bbde854fa7f2cd9b4d73b9e2a..cce178a1ffe458d90de0efd9fcb64aabc4ce580a 100644 (file)
@@ -1,5 +1,5 @@
-/* Copyright (C) 2009, Martin Johansson <martin@fatbob.nu>
-   Copyright (C) 2005-2009, Thorvald Natvig <thorvald@natvig.com>
+/* Copyright (C) 2009-2010, Martin Johansson <martin@fatbob.nu>
+   Copyright (C) 2005-2010, Thorvald Natvig <thorvald@natvig.com>
 
    All rights reserved.
 
@@ -34,6 +34,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/utsname.h>
 #include <fcntl.h>
 #include <signal.h>
 #include <sched.h>
@@ -45,8 +46,9 @@
 #include "log.h"
 #include "client.h"
 #include "conf.h"
+#include "version.h"
 
-#define UMURMUR_VERSION "0.1.3"
+char system_string[64], version_string[64];
 
 void lockfile(const char *pidfile)
 {
@@ -57,7 +59,7 @@ void lockfile(const char *pidfile)
        
        if (lfp < 0)
                Log_fatal("Cannot open PID-file %s for writing", pidfile);
-       sprintf(str,"%d\n",getpid());
+       sprintf(str,"%d\n", getpid());
        write(lfp, str, strlen(str)); /* record pid to lockfile */
        Log_info("PID-file: %s", pidfile);
 }
@@ -119,7 +121,7 @@ void setscheduler()
 
 void printhelp()
 {
-       printf("uMurmur version %s. Mumble protocol %d\n", UMURMUR_VERSION, MESSAGE_STREAM_VERSION);
+       printf("uMurmur version %s. Mumble protocol %d.%d.%d\n", UMURMUR_VERSION, PROTVER_MAJOR, PROTVER_MINOR, PROTVER_PATCH);
        printf("Usage: umurmurd [-d] [-p <pidfile>] [-c <conf file>] [-h]\n");
        printf("       -d             - Do not deamonize\n");
        printf("       -p <pidfile>   - Write PID to this file\n");
@@ -135,6 +137,7 @@ int main(int argc, char **argv)
        bool_t realtime = false;
        char *conffile = NULL, *pidfile = NULL;
        int c;
+       struct utsname utsbuf;
        
        /* Arguments */
        while ((c = getopt(argc, argv, "drp:c:h")) != EOF) {
@@ -181,7 +184,17 @@ int main(int argc, char **argv)
        signal(SIGTTIN, SIG_IGN);
        signal(SIGHUP, signal_handler); /* catch hangup signal */
        signal(SIGTERM, signal_handler); /* catch kill signal */
-
+       
+       /* Build system string */
+       if (uname(&utsbuf) == 0) {
+               snprintf(system_string, 64, "%s %s", utsbuf.sysname, utsbuf.machine);
+               snprintf(version_string, 64, "%s", utsbuf.release);
+       }
+       else {
+               snprintf(system_string, 64, "unknown unknown");
+               snprintf(version_string, 64, "unknown");
+       }
+       
        /* Initializing */
        SSL_init();
        Chan_init();