diff options
| author | 2018-07-13 10:28:28 +0100 | |
|---|---|---|
| committer | 2018-07-18 19:22:17 +0100 | |
| commit | b7716ed57704b2b2bcc665a590aecc8f02de631d (patch) | |
| tree | 43f1c62613f3aee5074009a3b8e4582dc65c3638 /src/modules/m_spanningtree/main.cpp | |
| parent | Add the family() member to the sockaddrs union. (diff) | |
| download | inspircd++-b7716ed57704b2b2bcc665a590aecc8f02de631d.tar.gz inspircd++-b7716ed57704b2b2bcc665a590aecc8f02de631d.tar.bz2 inspircd++-b7716ed57704b2b2bcc665a590aecc8f02de631d.zip | |
Initial support for listening on UNIX socket endpoints.
Diffstat (limited to 'src/modules/m_spanningtree/main.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/main.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index 0b311a0bd..8bc3bfd9c 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -203,7 +203,13 @@ void ModuleSpanningTree::ConnectServer(Link* x, Autoconnect* y) return; } - if (strchr(x->IPAddr.c_str(),':')) + if (x->IPAddr.find('/') != std::string::npos) + { + struct stat sb; + if (stat(x->IPAddr.c_str(), &sb) == -1 || !S_ISSOCK(sb.st_mode)) + ipvalid = false; + } + if (x->IPAddr.find(':') != std::string::npos) { in6_addr n; if (inet_pton(AF_INET6, x->IPAddr.c_str(), &n) < 1) |
