1. 17 Oct, 2001 5 commits
    • Sergey Poznyakoff authored
    • Sergey Poznyakoff authored
    • Alain Magloire authored
    • Alain Magloire authored
    • 	it is not unusual to see server with a shorter timeout.  When
      	the timeout occurs, the server sends a BYE.  To catch this
      	all functions in folder_imap.c and mbx_imap.c use a proloque
      	folder_open() or imap_messages_count to check if the server
      	timedout and reconnect.  This is not bullet proof since the
      	"* BYE" will be act upon on the second request, the first
      	is where we catch "* BYE".  On mailbox2 this behaviour will
      	be disable/enable with a property and make more reliable,
      	so client set the property "AUTORECONNECT".
      
      	* mailbox/folder_imap.c: Prologue to must functions calling
      	folder_open().
      	* mailbox/mbx_imap.c: Proloque to must functions calling
      	folder_open() or imap_messages_count.
      	(section_name): Buglet passed the wrong argument to sizeof().
      
      	For debugging purposes, to see the traffic
      	* mailbox/folder_imap.c:
      	Print to stderr the command sent to the IMAP server.
      	#define DEBUG_SHOW_COMMAND 1
      	Print to stderr the responses received from the IMAP server.
      	#define DEBUG_SHOW_RESPONSE 1
      	Print to stderr the literal/quoted string received from the IMAP
      	server. #define DEBUG_SHOW_DATA 1
      Alain Magloire authored
  2. 16 Oct, 2001 5 commits
  3. 15 Oct, 2001 5 commits
    • Jeff Bailey authored
    • 	Bad analysis on my part. Functions removed.
      
      	* configure.in: Bump to 0.0.9b
      
      	* TODO: Put a note apropos mailbox2.
      Alain Magloire authored
    • 	The buffer was not null terminated if no newline was found.
      Alain Magloire authored
    • 	hacks.  Something to remember for the mailbox2 is to do some
      	smart caching, the current buffered stream is not good enough.
      
      	* configure.in: VERSION is set to 0.0.9a for the alpha.
      	* frm/frm.c: Protype for usage(). get_personal() should use
      	const char *.
      	* mail/mail.c (main): Use mailbox_scan() instead of
      	mailbox_messages_count () it is faster for IMAP.
      
      	* mailbox/mbx_imap.c(imap_get_message0): Remove the
      	stream_setbufsiz() it is no longer used.
      	(imap_message_readline imap_body_readline):
      	Bug fix, readline will only consume up to '\n' even though the
      	buffer is bigger.  So we have to adjust the offset/lines/size
      	to reflect what we consume.  This is not very good for example
      	doing:
      	{
      	   off_t offset = 14;
      	   char buffer[512];
      	   stream_readline (stream, buffer, sizeof buffer, offset, NULL);
      	   ...
      	}
      	Will send to the impap server.
      	C: g445 FETCH 4 BODY.PEEK[2]<0.2048>
              S: * 4 FETCH (BODY[2]<0> {739}
      	S: g445 OK FETCH completed
      
      	This is waste since the first line is only 37 bytes.  We will
      	have to come up on the second API with some smart caching.
      
      	* mailbox/memory_stream.c (_memory_write): Nasty bug
      	was not updating the stream size.
      	* mailbox/stream.c(stream_readline): Take care of known
      	case where the buflen is 0 or 1.
      Alain Magloire authored
    • 	it is the same approach as in mail/util.c(environment) settings.
      	The old code was simply overkill, property_t was seldomly use
      	if at all and no need for heavy hash table and all that jazz.
      
      	* mailbox/property.c:  New code, the same as mail/util.c
      	environment.
      	* mailbox/mbx_mbox.c (_mbx_init): Remove property_add_defaults() etc ..
      	no longer in use in the initialisation code.
      	* mailbox/mbx_imap.c: Likewised
      	* mailbox/mbx_pop.c: Likewised
      	* mailbox/mbx_mh.c: Likewised
      	* mailbox/header.c: Remove property code.
      	* mailbox/body.c: Remove property code.
      	* mailbox/message.c: Remove property code.
      	* mailbox/filter.c: Change the code according to the new property_t.
      	* mailbox/filter_rfc822.c: Change the code according to the new
      	property_t.
      	* include/mailutils/header.h: Remove property.
      	* include/mailutils/body.h: Remove property.
      	* include/mailutils/message.h: Remove property.
      	* include/mailutils/property.h: Remove property_add_defaults()
      	property_set_valued () takes one more argument for overwrite.
      	* mailbox/include/header0.hy: Remove property field.
      	* mailbox/include/body0.hy: Remove property field.
      	* mailbox/include/message0.hy: Remove property field.
      	* mailbox/mailbox.c(mailbox_get_property mailbox_set_property):
      	Changed Property code.
      	* mailbox/mailer.c(mailer_set_property mailer_get_property):
      	Changed Property code.
      
      	* mailbox/folder_imap.c (imap_search imap_expunge imap_status): Stubs
      	Search is not implemented yet, STATUS neither and EXPUNGE is not used.
      
      	* mailbox/list.c: Rename variable index to indx to shutup
      	gcc whos confusing with index() when warning level was high.
      	* mailbox/md5-rsa.c: Likewised.
      
      	* mailbox/mailbox.c (mailbox_get_debug mailbox_set_debug):
      	The debug object was being set on the folder not the mailbox.
      
      	* mailbox/mbx_imap.c (imap_messages_count): Attempt to reconnect
      	if the connection timeout.  Is this wise ?
      	(imap_scan0): Move gut of imap_scan() code tho here.
      	(imap_scan): Stub calling imap_scan0() with notification enable.
      	(imap_expunge): After CLOSE, call imap_scan0() wiht notification
      	disable.
      
      	Memory leak in parse822, this was a real pain to trace, because
      	of the recursive nature of the algorithm.  Sam should buy me
      	a beer for this.
      
      	* mailbox/parse822.c: Use more assert to catch errors.
      	(parse822_group): phrase was not free() in case of failure.
      	(parse822_mail_box): Dead if branch remove and free phrase.
      	(parse822_route): accumulator was not being freed.
      	(parse822_local_part): Move down st_free(more).
      	(parse822_domain): Move down st_free(more).
      Alain Magloire authored
  4. 14 Oct, 2001 12 commits
  5. 13 Oct, 2001 2 commits
  6. 12 Oct, 2001 3 commits
  7. 11 Oct, 2001 3 commits
    • 	(imap_string): Free the buffer.
      	(imap_body): Check if we already have the fheader header.
      	(imap_scan): Forgot the break in the switch.
      
      I think, I broke something in the IMAP code too .. sigh ... it
      is getting to late here to figure this out.
      Alain Magloire authored
    • 	the approach of downloading part of the header of the total
      	set of messages.  The it was done before is that the headers
      	were ask one by one per message.  This was causing performance
      	delay because we were doing a lot of small transaction on
      	the TCP/IP stack.  By bundling the entire thing in one request
      	there was much less transcation and the speed was increase
      	by a factor of 10++.
      	The Imap code folder_imap.c and mbx_imap.c is now messy.
      	The rewrite in mailbox2 should clean this up though.
      
      	* mailbox/folder_imap.c (imap_quoted_string): Allocated the
      	memory instead.
      	(imap_body): If we were doing the scan free the memory and create
      	the cache header.
      	(imap_fetch): Create the message if was not done, important for
      	the scan.
      	* mailbox/mbx_imap.c (imap_scan): Bundle one big request to
      	fetch as much information as possible.
      	(message_operation): Free the buffer when done.
      	* mailbox/include/imap0.h: Add IMAP_SCAN states.
      
      	* mailbox/file_stream.c (_file_readline): It seems that fgets() can
      	not handle binary data.  Try to do our best.
      Alain Magloire authored
    • 	of byte written to 0.
      	(header_get_value): Likewised.
      	* mailbox/mbx_imap.c (imap_envelope_sender): Go through
      	header_get_value() to fetch the "Sender" field, it may be cache.
      	(imap_header_get_fvalue): Put parenthesies around the FETCH, the
      	WU-IMAPD likes it that way.
      Alain Magloire authored
  8. 10 Oct, 2001 2 commits
  9. 09 Oct, 2001 2 commits
  10. 08 Oct, 2001 1 commit