From: Timo Sirainen Date: Thu, 30 Jun 2016 23:49:32 +0000 (+0300) Subject: login-proxy: cork+uncork in flush callbacks X-Git-Tag: 2.3.0.rc1~3356 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7dd5d993bbee36fa0bff515b5b0fcdffb008dd88;p=thirdparty%2Fdovecot%2Fcore.git login-proxy: cork+uncork in flush callbacks Potentially reduces latency at the end of a larger data transfer. --- diff --git a/src/login-common/login-proxy.c b/src/login-common/login-proxy.c index fb35e89009..819cb8f242 100644 --- a/src/login-common/login-proxy.c +++ b/src/login-common/login-proxy.c @@ -197,10 +197,12 @@ static void proxy_client_disconnected_input(struct login_proxy *proxy) static int server_output(struct login_proxy *proxy) { proxy->last_io = ioloop_time; + o_stream_cork(proxy->server_output); if (o_stream_flush(proxy->server_output) < 0) { login_proxy_free_ostream(&proxy, proxy->server_output, TRUE); return 1; } + o_stream_uncork(proxy->server_output); if (proxy->client_io == NULL && o_stream_get_buffer_used_size(proxy->server_output) < @@ -216,10 +218,12 @@ static int server_output(struct login_proxy *proxy) static int proxy_client_output(struct login_proxy *proxy) { proxy->last_io = ioloop_time; + o_stream_cork(proxy->client_output); if (o_stream_flush(proxy->client_output) < 0) { login_proxy_free_ostream(&proxy, proxy->client_output, FALSE); return 1; } + o_stream_uncork(proxy->client_output); if (proxy->server_io == NULL && o_stream_get_buffer_used_size(proxy->client_output) <