Merge pull request #633 from Xertis/dev

Make Nagle's algorithm configurable
This commit is contained in:
MihailRis
2025-10-01 01:29:49 +03:00
committed by GitHub
5 changed files with 50 additions and 0 deletions
+16
View File
@@ -355,6 +355,22 @@ public:
}
}
void setNoDelay(bool noDelay) override {
int opt = noDelay ? 1 : 0;
if (setsockopt(descriptor, IPPROTO_TCP, TCP_NODELAY, (char*)&opt, sizeof(opt)) < 0) {
throw handle_socket_error("setsockopt(TCP_NODELAY) failed");
}
}
bool isNoDelay() const override {
int opt = 0;
socklen_t len = sizeof(opt);
if (getsockopt(descriptor, IPPROTO_TCP, TCP_NODELAY, (char*)&opt, &len) < 0) {
throw handle_socket_error("getsockopt(TCP_NODELAY) failed");
}
return opt != 0;
}
void startListen() {
while (state == ConnectionState::CONNECTED) {
int size = recvsocket(descriptor, buffer.data(), buffer.size());