[dovecot-cvs] dovecot/src/lib ostream-file.c,1.31,1.32
cras at dovecot.org
cras at dovecot.org
Tue Aug 31 12:14:17 EEST 2004
- Previous message: [dovecot-cvs] dovecot/src/pop3 commands.c,1.24,1.25
- Next message: [dovecot-cvs]
dovecot/src/auth mech-apop.c, 1.3, 1.4 mech-cram-md5.c,
1.9, 1.10 mech-digest-md5.c, 1.23, 1.24 mech-login.c, 1.2,
1.3 mech-ntlm.c, 1.3, 1.4 mech-plain.c, 1.20, 1.21 mech-rpa.c,
1.2, 1.3 mech.c, 1.32, 1.33 mech.h, 1.20, 1.21
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv24345
Modified Files:
ostream-file.c
Log Message:
Output stream sometimes duplicated data and sometimes lost data.
Index: ostream-file.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/ostream-file.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- ostream-file.c 23 Aug 2004 15:27:31 -0000 1.31
+++ ostream-file.c 31 Aug 2004 09:14:14 -0000 1.32
@@ -102,20 +102,17 @@
if (fstream->head < fstream->tail) {
/* ...HXXXT... */
used = fstream->tail - fstream->head;
- fstream->head += I_MIN(used, size);
+ i_assert(size <= used);
+ fstream->head += size;
} else {
/* XXXT...HXXX */
used = fstream->buffer_size - fstream->head;
if (size > used) {
size -= used;
- if (size < fstream->tail)
- fstream->head = size;
- else {
- /* whole buffer is sent */
- fstream->head = fstream->tail = 0;
- }
+ i_assert(size <= fstream->tail);
+ fstream->head = size;
} else {
- fstream->head += I_MIN(used, size);
+ fstream->head += size;
}
fstream->full = FALSE;
@@ -128,7 +125,6 @@
fstream->head = 0;
}
-/* NOTE: modifies iov */
static ssize_t o_stream_writev(struct file_ostream *fstream,
const struct const_iovec *iov, int iov_size)
{
@@ -158,9 +154,9 @@
if (iov_size <= UIO_MAXIOV) {
ret = writev(fstream->fd, (const struct iovec *)iov,
iov_size);
- if (ret > 0)
- ret += sent;
}
+ if (ret > 0)
+ ret += sent;
}
if (ret < 0) {
@@ -373,7 +369,8 @@
if (unused > size-sent)
unused = size-sent;
- memcpy(fstream->buffer + fstream->tail, data, unused);
+ memcpy(fstream->buffer + fstream->tail,
+ CONST_PTR_OFFSET(data, sent), unused);
sent += unused;
fstream->tail += unused;
- Previous message: [dovecot-cvs] dovecot/src/pop3 commands.c,1.24,1.25
- Next message: [dovecot-cvs]
dovecot/src/auth mech-apop.c, 1.3, 1.4 mech-cram-md5.c,
1.9, 1.10 mech-digest-md5.c, 1.23, 1.24 mech-login.c, 1.2,
1.3 mech-ntlm.c, 1.3, 1.4 mech-plain.c, 1.20, 1.21 mech-rpa.c,
1.2, 1.3 mech.c, 1.32, 1.33 mech.h, 1.20, 1.21
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list