Johannes Berg wrote:
Please don't take mail private. I tend to not reply at all in that case.

Can you try this patch?

johannes

diff --git a/mailtrain.c b/mailtrain.c
index dbe770c..75c0fc8 100644
--- a/mailtrain.c
+++ b/mailtrain.c
@@ -213,7 +213,9 @@ int backend_handle_mail(struct mailbox_transaction_context 
*t,
        struct istream *mailstream;
        struct ostream *outstream;
        int ret;
-       char *buf, *firstline;
+       char *buf;
+       const unsigned char *beginning;
+       size_t size;
        int fd;
if (!ast->tmpdir) {
@@ -266,15 +268,25 @@ int backend_handle_mail(struct 
mailbox_transaction_context *t,
                goto failed_to_copy;
        }
- firstline = i_stream_read_next_line(mailstream);
+       if (i_stream_read_data(mailstream, &beginning, &size, 5) < 0 ||
+           size < 5) {
+               ret = -1;
+               mail_storage_set_error(t->box->storage,
+                                      "Failed to read mail beginning");
+               goto failed_to_copy;
+       }
- if (strncmp(firstline, "From ", 5) != 0)
-               if (o_stream_send_str(outstream, firstline) < 0) {
+       /* "From "? skip line */
+       if (memcmp("From ", beginning, 5) == 0) {
+               i_stream_read_next_line(mailstream);
+       } else {
+               if (o_stream_send_str(outstream, "From ") < 0) {
                        ret = -1;
                        mail_storage_set_error(t->box->storage,
                                               "Failed to write line to temp");
                        goto failed_to_copy;
                }
+       }
if (o_stream_send_istream(outstream, mailstream) < 0) {
                ret = -1;




Hello Johannes,

sorry taking it off the list. Didn't want to bother the others with my whining.. ;)

I've briefly tested the patch you sugested and it seems to work like a charm.

Thank you for your interest.

Best regards,

Hugo Monteiro.

--
ci.fct.unl.pt:~# cat .signature

Hugo Monteiro
Email    : [EMAIL PROTECTED]
Telefone : +351 212948300 Ext.15307

Centro de Informática
Faculdade de Ciências e Tecnologia da
                   Universidade Nova de Lisboa
Quinta da Torre   2829-516 Caparica   Portugal
Telefone: +351 212948596   Fax: +351 212948548
www.ci.fct.unl.pt             [EMAIL PROTECTED]

ci.fct.unl.pt:~# _

Reply via email to