[dovecot-cvs] dovecot/src/lib-storage/index index-mail.c,1.7,1.8
cras at procontrol.fi
cras at procontrol.fi
Wed Jun 4 19:58:01 EEST 2003
Update of /home/cvs/dovecot/src/lib-storage/index
In directory danu:/tmp/cvs-serv27024/lib-storage/index
Modified Files:
index-mail.c
Log Message:
IMAP protocol doesn't allow server to send NULs to client. Send ascii #128
instead.
Index: index-mail.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-mail.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- index-mail.c 26 Mar 2003 17:29:02 -0000 1.7
+++ index-mail.c 4 Jun 2003 15:57:59 -0000 1.8
@@ -40,6 +40,15 @@
return NULL;
}
+ /* we know the NULs now, update them */
+ if ((part->flags & MESSAGE_PART_FLAG_HAS_NULS) != 0) {
+ mail->mail.has_nuls = TRUE;
+ mail->mail.has_no_nuls = FALSE;
+ } else {
+ mail->mail.has_nuls = FALSE;
+ mail->mail.has_no_nuls = TRUE;
+ }
+
return part;
}
@@ -261,6 +270,16 @@
index_mail_init_parse_header(mail);
data->parts = message_parse(mail->pool, data->stream,
index_mail_parse_header, mail);
+
+ /* we know the NULs now, update them */
+ if ((data->parts->flags & MESSAGE_PART_FLAG_HAS_NULS) != 0) {
+ _mail->has_nuls = TRUE;
+ _mail->has_no_nuls = FALSE;
+ } else {
+ _mail->has_nuls = FALSE;
+ _mail->has_no_nuls = TRUE;
+ }
+
return data->parts;
}
@@ -411,13 +430,13 @@
return (uoff_t)-1;
if (hdr_phys_size == (uoff_t)-1) {
- message_get_header_size(data->stream, &data->hdr_size);
+ message_get_header_size(data->stream, &data->hdr_size, NULL);
hdr_size = data->hdr_size.virtual_size;
data->hdr_size_set = TRUE;
}
if (body_size == (uoff_t)-1) {
message_get_body_size(data->stream, &data->body_size,
- (uoff_t)-1, NULL);
+ (uoff_t)-1, NULL, NULL);
body_size = data->body_size.virtual_size;
data->body_size_set = TRUE;
}
@@ -534,7 +553,8 @@
if (hdr_size != NULL) {
if (!data->hdr_size_set) {
- message_get_header_size(data->stream, &data->hdr_size);
+ message_get_header_size(data->stream, &data->hdr_size,
+ NULL);
data->hdr_size_set = TRUE;
}
@@ -547,7 +567,7 @@
data->hdr_size.physical_size);
message_get_body_size(data->stream, &data->body_size,
- (uoff_t)-1, NULL);
+ (uoff_t)-1, NULL, NULL);
data->body_size_set = TRUE;
}
@@ -618,7 +638,7 @@
}
static struct mail index_mail = {
- 0, 0, 0,
+ 0, 0, 0, 0, 0,
get_flags,
get_parts,
@@ -657,6 +677,11 @@
memset(data, 0, sizeof(*data));
p_clear(mail->pool);
+
+ mail->mail.has_nuls =
+ (rec->index_flags & INDEX_MAIL_FLAG_HAS_NULS) != 0;
+ mail->mail.has_no_nuls =
+ (rec->index_flags & INDEX_MAIL_FLAG_HAS_NO_NULS) != 0;
data->rec = rec;
data->size = (uoff_t)-1;
More information about the dovecot-cvs
mailing list