Fix issue 11: Typo
[umurmur.git] / src / main.c
index d1351ddc080f9c76a761023f1f43fb2e288975b6..70358e61ad88ebb71215f4f3041760e546044515 100644 (file)
 #include <sys/utsname.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <sched.h>
 #include <errno.h>
 #include <string.h>
 #include <stdlib.h>
-
+#ifdef _POSIX_PRIORITY_SCHEDULING
+#include <sched.h>
+#endif
 #include "server.h"
 #include "ssl.h"
 #include "channel.h"
@@ -63,7 +64,7 @@ void lockfile(const char *pidfile)
        
        if (lfp < 0)
                Log_fatal("Cannot open PID-file %s for writing", pidfile);
-       sprintf(str,"%d\n", getpid());
+       snprintf(str,16,"%d\n", getpid());
        write(lfp, str, strlen(str)); /* record pid to lockfile */
        Log_info("PID-file: %s", pidfile);
 }
@@ -111,6 +112,7 @@ void daemonize()
                
 }
 
+#ifdef _POSIX_PRIORITY_SCHEDULING
 void setscheduler()
 {
        int rc;
@@ -122,15 +124,18 @@ void setscheduler()
        if (rc < 0)
                Log_warn("Failed to set scheduler: %s", strerror(errno));
 }
+#endif
 
 void printhelp()
 {
        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("       -d             - Do not daemonize\n");
        printf("       -p <pidfile>   - Write PID to this file\n");
        printf("       -c <conf file> - Specify configuration file\n");
+#ifdef _POSIX_PRIORITY_SCHEDULING
        printf("       -r             - Run with realtime priority\n");
+#endif
        printf("       -a <address>   - Bind to IP address\n");
        printf("       -b <port>      - Bind to port\n");
        printf("       -h             - Print this help\n");
@@ -140,13 +145,19 @@ void printhelp()
 int main(int argc, char **argv)
 {
        bool_t nodaemon = false;
+#ifdef _POSIX_PRIORITY_SCHEDULING
        bool_t realtime = false;
+#endif
        char *conffile = NULL, *pidfile = NULL;
        int c;
        struct utsname utsbuf;
        
        /* Arguments */
+#ifdef _POSIX_PRIORITY_SCHEDULING
        while ((c = getopt(argc, argv, "drp:c:a:b:h")) != EOF) {
+#else
+       while ((c = getopt(argc, argv, "dp:c:a:b:h")) != EOF) {
+#endif
                switch(c) {
                case 'c':
                        conffile = optarg;
@@ -166,9 +177,11 @@ int main(int argc, char **argv)
                case 'h':
                        printhelp();
                        break;
+#ifdef _POSIX_PRIORITY_SCHEDULING
                case 'r':
                        realtime = true;
                        break;
+#endif
                default:
                        fprintf(stderr, "Unrecognized option\n");
                        printhelp();
@@ -213,8 +226,10 @@ int main(int argc, char **argv)
        Chan_init();
        Client_init();
 
+#ifdef _POSIX_PRIORITY_SCHEDULING
        if (realtime)
                setscheduler();
+#endif
        
        Server_run();