[dovecot-cvs] dovecot/src/lib ibuffer.c,1.9,1.10 ibuffer.h,1.4,1.5
cras at procontrol.fi
cras at procontrol.fi
Wed Nov 6 07:57:44 EET 2002
Update of /home/cvs/dovecot/src/lib
In directory danu:/tmp/cvs-serv27429/lib
Modified Files:
ibuffer.c ibuffer.h
Log Message:
i_buffer_get_modifyable_data(): Like i_buffer_get_data(), but returns
non-const data. If modifying isn't allowed to buffer, returns NULL.
Index: ibuffer.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/ibuffer.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- ibuffer.c 4 Nov 2002 07:11:32 -0000 1.9
+++ ibuffer.c 6 Nov 2002 05:57:41 -0000 1.10
@@ -197,6 +197,19 @@
return _buf->buffer + _buf->skip;
}
+unsigned char *i_buffer_get_modifyable_data(IBuffer *buf, size_t *size)
+{
+ _IBuffer *_buf = buf->real_buffer;
+
+ if (_buf->skip >= _buf->pos || _buf->w_buffer == NULL) {
+ *size = 0;
+ return NULL;
+ }
+
+ *size = _buf->pos - _buf->skip;
+ return _buf->w_buffer + _buf->skip;
+}
+
int i_buffer_read_data(IBuffer *buf, const unsigned char **data,
size_t *size, size_t threshold)
{
Index: ibuffer.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib/ibuffer.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- ibuffer.h 28 Oct 2002 04:33:00 -0000 1.4
+++ ibuffer.h 6 Nov 2002 05:57:41 -0000 1.5
@@ -62,6 +62,9 @@
/* Returns pointer to beginning of data in buffer, or NULL if there's
no data. */
const unsigned char *i_buffer_get_data(IBuffer *buf, size_t *size);
+/* Like i_buffer_get_data(), but returns non-const data. If modifying isn't
+ allowed to buffer, returns NULL. */
+unsigned char *i_buffer_get_modifyable_data(IBuffer *buf, size_t *size);
/* Like i_buffer_get_data(), but read it when needed. Returns 1 if more
than threshold bytes were stored into buffer, 0 if less, -1 if error or
EOF with no bytes in buffer or -2 if buffer is full. */
More information about the dovecot-cvs
mailing list