dovecot-2.0: Added o_stream_get_buffer_avail_size().

dovecot at dovecot.org dovecot at dovecot.org
Fri Oct 16 19:31:09 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/ede6701cfe7a
changeset: 10084:ede6701cfe7a
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Oct 16 12:30:59 2009 -0400
description:
Added o_stream_get_buffer_avail_size().

diffstat:

2 files changed, 10 insertions(+)
src/lib/ostream.c |    8 ++++++++
src/lib/ostream.h |    2 ++

diffs (30 lines):

diff -r bad043de6a7a -r ede6701cfe7a src/lib/ostream.c
--- a/src/lib/ostream.c	Fri Oct 16 12:30:14 2009 -0400
+++ b/src/lib/ostream.c	Fri Oct 16 12:30:59 2009 -0400
@@ -113,6 +113,14 @@ size_t o_stream_get_buffer_used_size(con
 
 	return _stream->get_used_size == NULL ? 0 :
 		_stream->get_used_size(_stream);
+}
+
+size_t o_stream_get_buffer_avail_size(const struct ostream *stream)
+{
+	size_t used = o_stream_get_buffer_used_size(stream);
+
+	return stream->real_stream->max_buffer_size <= used ? 0 :
+		stream->real_stream->max_buffer_size - used;
 }
 
 int o_stream_seek(struct ostream *stream, uoff_t offset)
diff -r bad043de6a7a -r ede6701cfe7a src/lib/ostream.h
--- a/src/lib/ostream.h	Fri Oct 16 12:30:14 2009 -0400
+++ b/src/lib/ostream.h	Fri Oct 16 12:30:59 2009 -0400
@@ -72,6 +72,8 @@ void o_stream_set_flush_pending(struct o
 void o_stream_set_flush_pending(struct ostream *stream, bool set);
 /* Returns number of bytes currently in buffer. */
 size_t o_stream_get_buffer_used_size(const struct ostream *stream) ATTR_PURE;
+/* Returns number of bytes we can still write without failing. */
+size_t o_stream_get_buffer_avail_size(const struct ostream *stream) ATTR_PURE;
 
 /* Seek to specified position from beginning of file. This works only for
    files. Returns 1 if successful, -1 if error. */


More information about the dovecot-cvs mailing list