- 23 Feb, 2001 1 commit
-
-
will permit to change the behaviour of the mailbox. For example POP3 and IMAP4 streams are RFC822 meaning they end with "\r\n", Now I'm doing ugly hack to convert it and maintain the offset, that does not work well. Rather lets put the trouble on the client ;-) but by setting property_set ("RFC822_FORMAT"); the conversion "\r\n" can still be done. But it will be up to the client to do the offset calculation.
Alain Magloire authored
-
- 22 Feb, 2001 2 commits
-
- 21 Feb, 2001 1 commit
- 20 Feb, 2001 3 commits
-
-
to configure from CVS wasted his time and mine. doc/auth.texi doc/body.texi doc/headers.texi doc/mailbox.texi doc/message.texi doc/sfrom.c.texi doc/stream.texi : Very shy tentative to get some docs.
Alain Magloire authored -
I realise that MBOX format means that we also have to escapes lines that starting with "From " --> ">From ". So much for speed since this will imply reading line by line. mbx_pop.c : Some bug fixes, connection is close down if the client is trying to seek() backward. folder_imap.c mbx_imap.c : Unfinish business, but getting better. stream.c : Don't force a flush on close, let the underlying implementatio do that.
Alain Magloire authored
- 16 Feb, 2001 1 commit
-
-
- 09 Feb, 2001 1 commit
-
-
- 07 Feb, 2001 2 commits
-
-
- 06 Feb, 2001 1 commit
-
-
- 05 Feb, 2001 8 commits
-
-
-
-
-
* mailbox/imap4d/select.c : First draft implementation. * mailbox/imap4d/util.c : Add util_msgset() and util_send(). Reuse of util_getcommand() for subcommands.
Alain Magloire authored -
message_set_get_uid(). * include/mailutils/mailbox.h: New prototypes mailbox_uidnext(), mailbox_uidvalidity().
Alain Magloire authored -
the UID of the message (IMAP definition) and message_get_uidl() for the POP3 definition. * mailbox/attachment.c : Indentation fixes. * mailbox/file_stream.c : Make sure that the FILE* is close before opening. * mailbox/folder_imap.c : Use strcasecmp() not strcmp(). * mailbox/mailbox.c : Added mailbox_uidnext() and mailbox_uidvalidity. * mailbox/mapfile_stream.c : When munmap() failed we should check against MAP_FAILED, not NULL. * mailbox/mbx_imap.c : Implement imap_uidnext(), imap_uidvalidity() imap_message_uid(). * mailbox/mbx_mbox.c : Implement mbox_uidnext(), mbox_uidvalidity() mbox_message_uid(). * mailbox/mbx_mboxscan.c : Implement uidvalidity, it is save int the header of the first message, "X-IMAPbase: 127673838 123", a la c-client. Save UID, it is save in "X-UID". * mailbox/mbx_pop.c : Implement pop_messages_recent(), pop_message_unseen() and pop_uid(). * mailbox/trans_stream.c : Indentation fixes.
Alain Magloire authored
- 02 Feb, 2001 3 commits
-
-
is known, we can use memcpy() and friends for string manipulations. memXXX() functions are builtin in GNU C (gcc) and are much faster then the strXXX() counterparts. Small change in the loop to take advantage of this. * pop3d/quit.c : The rfc1939 insist that after a QUIT, we must release any resources and close the connection: "Whether the removal was successful or not, the server then releases any exclusive-access lock on the maildrop and closes the TCP connection." This was not done if error occured while expunging, no we will close the connection and notify the client of the error(ERR_FILE).
Alain Magloire authored -
not found. * mailbox/mbx_mbox.c: When expunging check to see if the registar the path_record too.
Alain Magloire authored -
-
- 01 Feb, 2001 3 commits
-
-
-
header_get_fvalue() mailutils/mailbox.h : rename mailbox_recent_count() to mailbox_unseen_count()
Alain Magloire authored -
header.c mbx_mboxscan.c mbx_mbox.c : an other attempt for speed when parsing, the most common use headers (From, To, Date, CC,..) are save in the structure, so when retrieve them it will be faster. Downside the tight parsing loop is not so thight and is frankly ugly. More memory is being use per messages. It is hard to guess at this stage the memory patterns and where to optimise, probably my last attempt at this before the code become truly unmaintable. mbx_imap.c mailbox.c : I did not understand the difference between "recent" and "unseen" english words. I think that "unseen" means new mail, an "recent" mail that was not read yet. So I had to rename some functions mailbox_recent_count() to mailbox_unseen_count(), but I maybe wrong ... sigh somebody with better english skill should explain this to me. mbx_pop.c include/header0.h include/mailbox0.h : Introduce header_set_fill() to let the mailboxes fill up a buffer that will contains the entire headers.
Alain Magloire authored
-
- 29 Jan, 2001 4 commits
-
-
-
-
and update Copyrigth. * pop3d/pop3d.c : Remove mbox_record register, only need path_record. * pop3d/retr.c : When retrieve a message should be mark as read. since we do not strip out the header "Status:". * pop3d/top.c : Adjust stream_readline().
Alain Magloire authored
-
- 26 Jan, 2001 5 commits
-
-
shape and ready. The biggest thing will be the awfull parsing done for FETCH/SEARCH etc .. "This will be for another day" -- Scarlet O'hara
Alain Magloire authored -
- 25 Jan, 2001 3 commits
-
-
failed ofile == NULL we should not attempt to fprintf(ofile, ..) nor fflush(). Buglet discover when working on imap4d. pop3d.[ch]/user.c : indentation and comments.
Alain Magloire authored -
-
change, this will help to know if the message_is_modified() and speed things up when expunging. file_stream.c : Don't disable the stream buffering and let the OS choose the best BUFSIZ i.e. remove setbuf() call. message.c registrar.c mailer.c folder.c header.c list.c mailbox.c : Copyright and indent. mapfile_stream.c mbx_imap.c mbx_mbox.c mbx_pop.c : go easy on the stack for array of strings. stream.c : Put code for doing our own simple littel buffering.
Alain Magloire authored
-
- 23 Jan, 2001 2 commits
-
-
was doing the equivalent of: char buffer[1024]; memset (buffer, 0, 1024); ... read (popfd, buffer, 1024); ... ret = malloc (strlen (buffer) +1); According to the rfc a command line should be no longer then 255 but a malicious client could send a big buffer that could fit 1024 then buffer would not be null terminated, strlen(buffer) may be supceptible to overflow. A simple fix would be to read (fd, buffer, 1023); /* leave space for a null */ I've put a different fix that does not need the call to memset(). And at the same time reduce the size of the buffer to go easy on the stack 512 is sufficient.
Alain Magloire authored -
-