void SocketEngine::LookupMaxFds()
{
+#if defined _WIN32
+ MaxSetSize = FD_SETSIZE;
+#else
struct rlimit limits;
if (!getrlimit(RLIMIT_NOFILE, &limits))
MaxSetSize = limits.rlim_cur;
#endif
if (!setrlimit(RLIMIT_NOFILE, &limits))
MaxSetSize = limits.rlim_cur;
+#endif
}
void SocketEngine::ChangeEventMask(EventHandler* eh, int change)
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;
}
}
#endif
-int SocketEngine::Connect(EventHandler* fd, const sockaddr *serv_addr, socklen_t addrlen)
+int SocketEngine::Connect(EventHandler* fd, const irc::sockets::sockaddrs& address)
{
- int ret = connect(fd->GetFd(), serv_addr, addrlen);
+ int ret = connect(fd->GetFd(), &address.sa, address.sa_size());
#ifdef _WIN32
if ((ret == SOCKET_ERROR) && (WSAGetLastError() == WSAEWOULDBLOCK))
errno = EINPROGRESS;