[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