summaryrefslogtreecommitdiff
path: root/src/socket.cpp
diff options
context:
space:
mode:
authorGravatar brain2008-12-07 21:25:55 +0000
committerGravatar brain2008-12-07 21:25:55 +0000
commit3ce7e897339f9ae11b6b310d987a0e1cd6c5c816 (patch)
tree3ebca8eda096e4c4d93c59fcae5e5834fd488aa0 /src/socket.cpp
parentMake an error message more verbose to help users (diff)
Patch to allow bindings to all ips on an ipv4 only system where the build is ipv6 (e.g. how debian build it) -- thanks for the patch danieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10867 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/socket.cpp')
-rw-r--r--src/socket.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/socket.cpp b/src/socket.cpp
index d2090c3a2..b0206da29 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -150,7 +150,13 @@ int irc::sockets::OpenTCPSocket(const char* addr, int socktype)
addr = addr;
struct linger linger = { 0, 0 };
#ifdef IPV6
- if (strchr(addr,':') || (!*addr))
+ if (!*addr)
+ {
+ sockfd = socket (PF_INET6, socktype, 0);
+ if (sockfd < 0)
+ sockfd = socket (PF_INET, socktype, 0);
+ }
+ else if (strchr(addr,':'))
sockfd = socket (PF_INET6, socktype, 0);
else
sockfd = socket (PF_INET, socktype, 0);