diff options
author | Peter Powell <petpow@saberuk.com> | 2019-02-07 15:34:41 +0000 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2019-04-15 12:21:12 +0100 |
commit | c2c4de7267db9835e36132364f422ba7d93f25d6 (patch) | |
tree | c165dda97b90d713cf25ddd7ddd000839c2e3405 /src/modules/m_spanningtree/resolvers.cpp | |
parent | e7b65ef5355d75dd32ea387da716a765090aff0e (diff) |
Fix linking servers with UNIX sockets.
- Remove the address/port overloads of BeginConnect.
- Change DoConnect to take a sockaddrs instead of an address/port.
Diffstat (limited to 'src/modules/m_spanningtree/resolvers.cpp')
-rw-r--r-- | src/modules/m_spanningtree/resolvers.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/resolvers.cpp b/src/modules/m_spanningtree/resolvers.cpp index ded0573af..b20b100dd 100644 --- a/src/modules/m_spanningtree/resolvers.cpp +++ b/src/modules/m_spanningtree/resolvers.cpp @@ -49,6 +49,14 @@ void ServernameResolver::OnLookupComplete(const DNS::Query *r) return; } + irc::sockets::sockaddrs sa; + if (!irc::sockets::aptosa(ans_record->rdata, MyLink->Port, sa)) + { + // We had a result but it wasn't a valid IPv4/IPv6. + OnError(r); + return; + } + /* Initiate the connection, now that we have an IP to use. * Passing a hostname directly to BufferedSocket causes it to * just bail and set its FD to -1. @@ -56,7 +64,7 @@ void ServernameResolver::OnLookupComplete(const DNS::Query *r) TreeServer* CheckDupe = Utils->FindServer(MyLink->Name); if (!CheckDupe) /* Check that nobody tried to connect it successfully while we were resolving */ { - TreeSocket* newsocket = new TreeSocket(MyLink, myautoconnect, ans_record->rdata); + TreeSocket* newsocket = new TreeSocket(MyLink, myautoconnect, sa); if (newsocket->GetFd() > -1) { /* We're all OK */ |