summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2018-01-20 12:24:35 +0000
committerPeter Powell <petpow@saberuk.com>2018-01-20 12:24:35 +0000
commitb7ecd18b73a301b28c61e3ac62cd6f7e4ed5c43e (patch)
treed4df98eff2af90a0d9fa7c5387037f76efc09ed8
parentb18e6b5556f2deedf6ebf154477c4d69dcf02638 (diff)
Pass an irc::socket::sockaddrs to SocketEngine::SendTo().
-rw-r--r--include/socketengine.h5
-rw-r--r--src/coremods/core_dns.cpp2
-rw-r--r--src/socketengine.cpp4
3 files changed, 5 insertions, 6 deletions
diff --git a/include/socketengine.h b/include/socketengine.h
index 8549da612..01afb8f91 100644
--- a/include/socketengine.h
+++ b/include/socketengine.h
@@ -484,11 +484,10 @@ public:
* @param buf The buffer in which the data that is sent is stored.
* @param len The size of the buffer.
* @param flags A flag value that controls the sending of the data.
- * @param to The remote IP address and port.
- * @param tolen The size of the to parameter.
+ * @param address The remote IP address and port.
* @return This method should return exactly the same values as the system call it emulates.
*/
- static int SendTo(EventHandler* fd, const void *buf, size_t len, int flags, const sockaddr *to, socklen_t tolen);
+ static int SendTo(EventHandler* fd, const void* buf, size_t len, int flags, const irc::sockets::sockaddrs& address);
/** Abstraction for BSD sockets connect(2).
* This function should emulate its namesake system call exactly.
diff --git a/src/coremods/core_dns.cpp b/src/coremods/core_dns.cpp
index 1040bb036..0a835a67a 100644
--- a/src/coremods/core_dns.cpp
+++ b/src/coremods/core_dns.cpp
@@ -502,7 +502,7 @@ class MyManager : public Manager, public Timer, public EventHandler
// Update name in the original request so question checking works for PTR queries
req->question.name = p.question.name;
- if (SocketEngine::SendTo(this, buffer, len, 0, &this->myserver.sa, this->myserver.sa_size()) != len)
+ if (SocketEngine::SendTo(this, buffer, len, 0, this->myserver) != len)
throw Exception("DNS: Unable to send query");
// Add timer for timeout
diff --git a/src/socketengine.cpp b/src/socketengine.cpp
index e02261bad..10a0e51a2 100644
--- a/src/socketengine.cpp
+++ b/src/socketengine.cpp
@@ -244,9 +244,9 @@ int SocketEngine::Recv(EventHandler* fd, void *buf, size_t len, int flags)
return nbRecvd;
}
-int SocketEngine::SendTo(EventHandler* fd, const void *buf, size_t len, int flags, const sockaddr *to, socklen_t tolen)
+int SocketEngine::SendTo(EventHandler* fd, const void* buf, size_t len, int flags, const irc::sockets::sockaddrs& address)
{
- int nbSent = sendto(fd->GetFd(), (const char*)buf, len, flags, to, tolen);
+ int nbSent = sendto(fd->GetFd(), (const char*)buf, len, flags, &address.sa, address.sa_size());
stats.UpdateWriteCounters(nbSent);
return nbSent;
}