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
commit fbba0e1415
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 50 additions and 0 deletions

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());