Servd: Adjust buffer sizes
parent
5a4a1489a8
commit
22d2b7c984
|
|
@ -103,6 +103,14 @@ public:
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool set_rcvbuf(uint32_t size) {
|
||||||
|
return ::setsockopt(mFD, SOL_SOCKET, SO_RCVBUF, (char*)&size, sizeof(size)) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool set_sndbuf(uint32_t size) {
|
||||||
|
return ::setsockopt(mFD, SOL_SOCKET, SO_SNDBUF, (char*)&size, sizeof(size)) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool connect(const Address& to) {
|
bool connect(const Address& to) {
|
||||||
return ::connect(mFD, (sockaddr*)&to.sockaddr(), sizeof(sockaddr_in)) != -1;
|
return ::connect(mFD, (sockaddr*)&to.sockaddr(), sizeof(sockaddr_in)) != -1;
|
||||||
}
|
}
|
||||||
|
|
@ -203,13 +211,6 @@ public:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool join_multicast(const std::string& interfaceIP, const std::string& multicastIP) {
|
|
||||||
ip_mreq mreq;
|
|
||||||
inet_pton(AF_INET, interfaceIP.c_str(), &mreq.imr_interface);
|
|
||||||
inet_pton(AF_INET, multicastIP.c_str(), &mreq.imr_multiaddr);
|
|
||||||
return setsockopt(mFD, IPPROTO_IP, IP_ADD_MEMBERSHIP, (const char*)&mreq, sizeof(mreq)) == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
operator bool() const { return mFD != -1; }
|
operator bool() const { return mFD != -1; }
|
||||||
operator SocketHandleType() const { return mFD; }
|
operator SocketHandleType() const { return mFD; }
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,14 @@ bool Servd::open() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
dataSocket = std::make_unique<Socket>(AF_INET, SOCK_STREAM, 0);
|
dataSocket = std::make_unique<Socket>(AF_INET, SOCK_STREAM, 0);
|
||||||
|
if(!dataSocket->set_rcvbuf(4 * 1024 * 1024)) {
|
||||||
|
EventManager::GetInstance().add(APIEvent::Type::SyscallError, APIEvent::Severity::Error);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!dataSocket->set_sndbuf(4 * 1024 * 1024)) {
|
||||||
|
EventManager::GetInstance().add(APIEvent::Type::SyscallError, APIEvent::Severity::Error);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
const auto& ip = tokens[0];
|
const auto& ip = tokens[0];
|
||||||
uint16_t port = 0;
|
uint16_t port = 0;
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue