Added socket errno EPROTONOSUPPORT to socket support check in checkIPversions()
[umurmur.git] / src / server.c
index 9bb6ccb801e44294ca872145f99b5b30a56de4fc..1a586324b0af1dbc1bc9dc09327efe811929ea7d 100644 (file)
@@ -47,6 +47,7 @@
 #include "timer.h"
 #include "version.h"
 #include "util.h"
+#include "sharedmemory.h"
 
 /* globals */
 bool_t shutdown_server;
@@ -66,13 +67,13 @@ void checkIPversions()
        int testsocket = -1;
 
        testsocket = socket(PF_INET, SOCK_STREAM, 0);
-       hasv4 = (errno == EAFNOSUPPORT) ? false : true;
+       hasv4 = (errno == EAFNOSUPPORT || errno == EPROTONOSUPPORT) ? false : true;
        if (!(testsocket < 0)) close(testsocket);
 
        testsocket = socket(PF_INET6, SOCK_STREAM, 0);
-       hasv6 = (errno == EAFNOSUPPORT) ? false : true;
+       hasv6 = (errno == EAFNOSUPPORT || errno == EPROTONOSUPPORT) ? false : true;
        if (!(testsocket < 0)) close(testsocket);
-
+       
        if(!hasv4)
        {
                Log_info("IPv4 is not supported by this system");
@@ -84,7 +85,6 @@ void checkIPversions()
                Log_info("IPv6 is not supported by this system");
                nofServerSocks -= 2;
        }
-
        if(nofServerSocks == 0)
        {
                Log_fatal("Neither IPv4 nor IPv6 are supported by this system");