[Citadel Development] Re: [SCM] citadel.org branch, master, updated. 826932b012c26b5ef97a5bbf45acf10fca6acc60

2010-11-11 Thread dothebart


 

So Nov 07 2010 15:53:26 EST von   IGnatius T Foobar @ Uncensored  Betreff: Re: [SCM] citadel.org branch, master, updated. 826932b012c26b5ef97a5bbf45acf10fca6acc60

When I see the words "rewrite IMAP module" I get very very scared.  How many different clients were tested to make sure nothing broke?  


so far? imaptest and thunderbird.
Imaptest: me has a question here. it groans over imap_fetch.c:
/* * Fetch RFC822-formatted messages. * * 'whichfmt' should be set to one of: *  "RFC822"    entire message *  "RFC822.HEADER" headers only (with trailing blank line) *  "RFC822.SIZE"   size of translated message *  "RFC822.TEXT"   body only (without leading blank line) */void imap_fetch_rfc822(long msgnum, const char *whichfmt) {
if (IMAP-cached_rfc822 == NULL) {...
if (!need_body) cprintf("\r\n");    /* extra trailing newline */
if thats here (commented it out for testing, success then) imaptest complains about that it doesn't find the closing ')' from that reply. TSS in irc://##imap gave me the hint that this linebreak mustn't be there.
since I didn't find a usefull commit message for that line, IG, do you remember a specific reason why its there anyways?
 
in general, that rewrite wasn't intended to change syntax in by any means; its there because of evolutions imap implementation can't stand us sending the greeting in several tcp packages (cut where i've added the linebreaks):
CAPABILITY IMAP4REV1 NAMESPACE ID AUTH=PLAIN AUTH=LOGIN UIDPLUS
 ACL
 STARTTLS
 METADATA
citadel blablabla
which now come in one chunk like that:
CAPABILITY IMAP4REV1 NAMESPACE ID AUTH=PLAIN AUTH=LOGIN UIDPLUS ACL STARTTLS METADATA citadel blablabla
which is achieved by replacing cprintf by calls writing to outbound buffers which is then sent to the client in one piece at the end.
There are several tiny exceptions from it, where the code chatters with the client without the dispatcher loop (hope I found all of them)
 
Next i've replaced all "%s BAD lorem ipsum\r\n" , Params[0].Key by a function implicitely prepending  Params[0].Key' ' and appending '\r\n' So we don't need a printf here in most places (which is good because of it saves us lots of strlens ;-)
 
the other part of the rewrite is to replace the rumpelstilskin handler lookup by a hashtable filled a start time.




[Citadel Development] Re: [SCM] citadel.org branch, master, updated. 826932b012c26b5ef97a5bbf45acf10fca6acc60

2010-11-11 Thread IGnatius T Foobar
 so far? imaptest and thunderbird.   
  
 Until you've also tested Outlook, Pine, whatever Apple is using these days,
and a mobile client or two ... assume that your patch broke them all.  
Seriously.
 IMAP is that fragile. 
 


[Citadel Development] Re: [SCM] citadel.org branch, master, updated. 826932b012c26b5ef97a5bbf45acf10fca6acc60

2010-11-11 Thread scianos
  Nov 9 2010 9:08pm from IGnatius T Foobar @uncnsrd   
 Subject: Re: [SCM] citadel.org branch, master, updated. 
 826932b012c26b5ef97a5bbf45acf10fca6acc60
 
  so far? imaptest and thunderbird. 
 
  Until you've also tested Outlook, Pine, whatever Apple is using these 
 
 days, and a mobile client or two ... assume that your patch broke them 
 
 all.  Seriously.  
  IMAP is that fragile.   

   
  
 Amen to that... And, it looks like we are broken with Evolution 2.30.3 right
now on copy and move operations (both SSL and non-SSL). Need to look at the
code to figure out what's going on...