X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.cpp;fp=server.cpp;h=a7f579c170928eabae1ca0d025c5ec1204741dd5;hp=e9bc654eb1a3cbe4d667f3bafef6119aabec01fa;hb=014604812e65d325316778ac98ac7c422226fce8;hpb=20e85bd6901355cc40a6cfb4c0deb7232d9aa63f diff --git a/server.cpp b/server.cpp index e9bc654..a7f579c 100644 --- a/server.cpp +++ b/server.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -1247,6 +1248,14 @@ bool Server::more_requests(Client *client) // Log to access_log. access_log->write(client->get_stats()); + // Flush pending data; does not cancel out TCP_CORK (since that still takes priority), + // but does a one-off flush. + int one = 1; + if (setsockopt(client->sock, SOL_TCP, TCP_NODELAY, &one, sizeof(one)) == -1) { + log_perror("setsockopt(TCP_NODELAY)"); + // Can still continue. + } + // Switch states and reset the parsers. We don't reset statistics. client->state = Client::READING_REQUEST; client->url.clear();