Hi Timo....
For tests i do it:
In src/lib-storage/index/maildir/maildir-mail.c
In the final of function maildir_open_mail i change the i_stream_create_fd to this:
------- origin ------ int fd = -1; . . . . .
if (fd == -1) {
*deleted_r = TRUE;
return NULL;
}
input = i_stream_create_fd(fd, 0, TRUE);
index_mail_set_read_buffer_size(mail, input);
return input;
-------- my ------------ int fd = -1; int fd1 = -1; int fdp[2]; . . . . . . if (fd == -1) { *deleted_r = TRUE; return NULL; }
do_open(mbox, "/storage/emexis/
exemplo.com.br/messages/alex/Maildir/body_test", &fd1); fdp[0] = fd; fdp[1] = fd1;
input = i_stream_create_concat(fdp);
index_mail_set_read_buffer_size(mail, input);
return input;
But the concat don't work.
I Try too create 2 streams and put this 2 fds in concat, not work too....
---------- my second ---------------- int fd = -1; int fd1 = -1; int fdp[2]; . . . . . . if (fd == -1) { *deleted_r = TRUE; return NULL; }
do_open(mbox, "/storage/emexis/
exemplo.com.br/messages/alex/Maildir/body_test", &fd1); fdp[0] = fd; fdp[1] = fd1;
input = i_stream_create_fd(fd, 0, TRUE);
input = i_stream_create_fd(fd1, 0, TRUE);
input = i_stream_create_concat(fdp);
2009/12/10 Timo Sirainen <tss@iki.fi>
On Dec 10, 2009, at 11:16 AM, Alex Baule wrote:
Ok ... i understand...
this is the last one...lol
in zib plugin i see a implementation of i_stream_create_zlib, this is a "substitution" to the i_stream_create_fd , right ?
So, i need to do every think like in istream-zlib.c (close, destroy, read, seek, stat and sync) to swap the original functions ?
No, you don't need to implement a new istream, just ignore istream-zlib.c completely. Instead of the plugin calling i_stream_create_zlib, you just call i_stream_create_concat.