From: Aki Tuomi Date: Thu, 8 Feb 2024 10:31:18 +0000 (+0200) Subject: lib: Add o_stream_get_flush_callback() X-Git-Tag: 2.4.0~1790 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3b7e2bb9068ecec10f8a9e9e809e3f508e5bf5ed;p=thirdparty%2Fdovecot%2Fcore.git lib: Add o_stream_get_flush_callback() Allows getting the current flush callback. --- diff --git a/src/lib/ostream.c b/src/lib/ostream.c index 2f9c49dd9d..19ac1846ce 100644 --- a/src/lib/ostream.c +++ b/src/lib/ostream.c @@ -148,6 +148,14 @@ void o_stream_unset_flush_callback(struct ostream *stream) _stream->set_flush_callback(_stream, NULL, NULL); } +stream_flush_callback_t * +o_stream_get_flush_callback(struct ostream *stream, void **context_r) +{ + struct ostream_private *_stream = stream->real_stream; + *context_r = _stream->context; + return _stream->callback; +} + void o_stream_set_max_buffer_size(struct ostream *stream, size_t max_size) { io_stream_set_max_buffer_size(&stream->real_stream->iostream, max_size); diff --git a/src/lib/ostream.h b/src/lib/ostream.h index 6d756b1da9..abce2c186e 100644 --- a/src/lib/ostream.h +++ b/src/lib/ostream.h @@ -143,6 +143,10 @@ void o_stream_set_flush_callback(struct ostream *stream, CALLBACK_TYPECHECK(callback, int (*)(typeof(context))), \ (stream_flush_callback_t *)callback, context) void o_stream_unset_flush_callback(struct ostream *stream); +/* Get the current flush callback, returns NULL if none set. */ +stream_flush_callback_t * +o_stream_get_flush_callback(struct ostream *stream, void **context_r); + /* Change the maximum size for stream's output buffer to grow. */ void o_stream_set_max_buffer_size(struct ostream *stream, size_t max_size); /* Returns the current max. buffer size. */