[dovecot-cvs] dovecot/src/lib istream.c,1.16,1.17
cras at procontrol.fi
cras at procontrol.fi
Sat Jun 19 03:59:33 EEST 2004
- Previous message: [dovecot-cvs] dovecot/src/lib-storage/index/mbox
mbox-sync-private.h, 1.15, 1.16 mbox-sync-rewrite.c, 1.17,
1.18 mbox-sync-update.c, 1.14, 1.15 mbox-sync.c, 1.33, 1.34
- Next message: [dovecot-cvs] dovecot/src/lib istream-limit.c,1.4,1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv11481
Modified Files:
istream.c
Log Message:
i_stream_read_data(): don't call read() unless we have to
Index: istream.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/istream.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- istream.c 18 Jun 2004 00:32:25 -0000 1.16
+++ istream.c 19 Jun 2004 00:59:31 -0000 1.17
@@ -179,19 +179,18 @@
int i_stream_read_data(struct istream *stream, const unsigned char **data,
size_t *size, size_t threshold)
{
- struct _istream *_stream = stream->real_stream;
ssize_t ret = 0;
- while (_stream->pos - _stream->skip <= threshold) {
+ do {
+ *data = i_stream_get_data(stream, size);
+ if (*size > threshold)
+ return 1;
+
/* we need more data */
ret = i_stream_read(stream);
- if (ret < 0)
- break;
- }
+ } while (ret >= 0);
- *data = i_stream_get_data(stream, size);
- return *size > threshold ? 1 :
- ret == -2 ? -2 :
+ return ret == -2 ? -2 :
*size > 0 ? 0 : -1;
}
- Previous message: [dovecot-cvs] dovecot/src/lib-storage/index/mbox
mbox-sync-private.h, 1.15, 1.16 mbox-sync-rewrite.c, 1.17,
1.18 mbox-sync-update.c, 1.14, 1.15 mbox-sync.c, 1.33, 1.34
- Next message: [dovecot-cvs] dovecot/src/lib istream-limit.c,1.4,1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list