[dovecot-cvs] dovecot/src/lib-mail message-send.c,1.15,1.16 message-send.h,1.8,1.9
cras at procontrol.fi
cras at procontrol.fi
Tue Jan 21 07:37:37 EET 2003
- Previous message: [dovecot-cvs] dovecot/src/lib-storage/index index-mail.c,NONE,1.1 index-mail.h,NONE,1.1
- Next message: [dovecot-cvs] dovecot/src/imap client.h,1.7,1.8 cmd-select.c,1.12,1.13 imap-fetch-body-section.c,1.1,1.2 imap-fetch.c,1.1,1.2 imap-fetch.h,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/lib-mail
In directory danu:/tmp/cvs-serv21976/lib-mail
Modified Files:
message-send.c message-send.h
Log Message:
Partial fetches are working fast again - faster than ever actually.
Index: message-send.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-mail/message-send.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- message-send.c 20 Jan 2003 14:52:51 -0000 1.15
+++ message-send.c 21 Jan 2003 05:37:35 -0000 1.16
@@ -7,18 +7,19 @@
#include "message-send.h"
#include "message-size.h"
-int message_send(struct ostream *output, struct istream *input,
- const struct message_size *msg_size,
- uoff_t virtual_skip, uoff_t max_virtual_size)
+off_t message_send(struct ostream *output, struct istream *input,
+ const struct message_size *msg_size,
+ uoff_t virtual_skip, uoff_t max_virtual_size)
{
const unsigned char *msg;
uoff_t old_limit, limit;
size_t i, size;
- int cr_skipped, add_cr, ret;
+ off_t ret;
+ int cr_skipped, add_cr;
if (msg_size->physical_size == 0 ||
virtual_skip >= msg_size->virtual_size)
- return TRUE;
+ return 0;
if (max_virtual_size > msg_size->virtual_size - virtual_skip)
max_virtual_size = msg_size->virtual_size - virtual_skip;
@@ -39,6 +40,7 @@
message_skip_virtual(input, virtual_skip, NULL, &cr_skipped);
/* go through the message data and insert CRs where needed. */
+ ret = 0;
while (max_virtual_size > 0 &&
i_stream_read_data(input, &msg, &size, 0) > 0) {
add_cr = FALSE;
@@ -55,12 +57,14 @@
}
}
+ ret += i;
if (o_stream_send(output, msg, i) < 0)
- return FALSE;
+ return -1;
if (add_cr) {
+ ret++;
if (o_stream_send(output, "\r", 1) < 0)
- return FALSE;
+ return -1;
cr_skipped = TRUE;
} else {
cr_skipped = i > 0 && msg[i-1] == '\r';
@@ -69,5 +73,5 @@
i_stream_skip(input, i);
}
- return TRUE;
+ return ret;
}
Index: message-send.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-mail/message-send.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- message-send.h 20 Jan 2003 14:52:51 -0000 1.8
+++ message-send.h 21 Jan 2003 05:37:35 -0000 1.9
@@ -6,9 +6,10 @@
/* Send message to client inserting CRs if needed. Only max_virtual_size
bytes if sent (relative to virtual_skip), if you want it unlimited,
use (uoff_t)-1. Remember that if input begins with LF, CR is inserted
- before it unless virtual_skip = 1. Returns TRUE if successful. */
-int message_send(struct ostream *output, struct istream *input,
- const struct message_size *msg_size,
- uoff_t virtual_skip, uoff_t max_virtual_size);
+ before it unless virtual_skip = 1. Returns number of bytes sent, or -1
+ if error. */
+off_t message_send(struct ostream *output, struct istream *input,
+ const struct message_size *msg_size,
+ uoff_t virtual_skip, uoff_t max_virtual_size);
#endif
- Previous message: [dovecot-cvs] dovecot/src/lib-storage/index index-mail.c,NONE,1.1 index-mail.h,NONE,1.1
- Next message: [dovecot-cvs] dovecot/src/imap client.h,1.7,1.8 cmd-select.c,1.12,1.13 imap-fetch-body-section.c,1.1,1.2 imap-fetch.c,1.1,1.2 imap-fetch.h,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list