From: Timo Sirainen Date: Sun, 29 Oct 2017 21:53:16 +0000 (+0200) Subject: lib: iostream-proxy - Add iostream_proxy_is_waiting_output() X-Git-Tag: 2.3.0.rc1~660 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ce52edd3de46bdf565ee71f6112a9e7a6090031;p=thirdparty%2Fdovecot%2Fcore.git lib: iostream-proxy - Add iostream_proxy_is_waiting_output() --- diff --git a/src/lib/iostream-proxy.c b/src/lib/iostream-proxy.c index f2f49620a9..1b05163891 100644 --- a/src/lib/iostream-proxy.c +++ b/src/lib/iostream-proxy.c @@ -124,6 +124,18 @@ void iostream_proxy_stop(struct iostream_proxy *proxy) iostream_pump_stop(proxy->rtl); } +bool iostream_proxy_is_waiting_output(struct iostream_proxy *proxy, + enum iostream_proxy_side side) +{ + switch (side) { + case IOSTREAM_PROXY_SIDE_LEFT: + return iostream_pump_is_waiting_output(proxy->ltr); + case IOSTREAM_PROXY_SIDE_RIGHT: + return iostream_pump_is_waiting_output(proxy->rtl); + } + i_unreached(); +} + void iostream_proxy_switch_ioloop(struct iostream_proxy *proxy) { i_assert(proxy != NULL); diff --git a/src/lib/iostream-proxy.h b/src/lib/iostream-proxy.h index fc00fe3b4a..6b290a6f29 100644 --- a/src/lib/iostream-proxy.h +++ b/src/lib/iostream-proxy.h @@ -44,6 +44,10 @@ struct ostream *iostream_proxy_get_ostream(struct iostream_proxy *proxy, enum io void iostream_proxy_start(struct iostream_proxy *proxy); void iostream_proxy_stop(struct iostream_proxy *proxy); +/* See iostream_pump_is_waiting_output() */ +bool iostream_proxy_is_waiting_output(struct iostream_proxy *proxy, + enum iostream_proxy_side side); + void iostream_proxy_set_completion_callback(struct iostream_proxy *proxy, iostream_proxy_callback_t *callback, void *context); #define iostream_proxy_set_completion_callback(proxy, callback, context) \