so, i’ve just committed another couple of revisions to the branch. i figure i’ll go through them and give another state of the state as i’ll be out of town till monday.
back when i was debugging the store/queue system due to my mail importing stuff i noticed that there were messages that weren’t showing up properly in imap. one of them being a 10meg video that my brother sent me. for some reason i couldn’t open it at all. (which incidentally brings up another bug that i can’t forget to send to halex in DF regarding that same email). i barely scratched the surface before moving to something else, filing the issue away for a later time. i figured, at the time, that imap was something i didn’t really want to dive into as it is a pretty complex agent. well, i came back to it tonight and found where the error was. a simple bug where the store sends back the structure. the GetMimeInfo() function would allocate a character string and store all the information in a BongoArray. we would allocate say 50 bytes (by using a strlen) and then we’d say memcpy(src, dest, sizeof(char *)). oops. we’d only really get the 2002 response code from nmap and not the structure. basically any multipart messages would not be readable properly by imap.
then, i committed a ~1300 line patch to queue/imap/pop/smtp where i stripped out setting from their configuration documents and put them in the global document. because of this patch all existing branch installations will be broken till they get the new global config document. there is a sample one included with the bongo-config application and if you don’t mind losing current settings you can just re-run the bongo-config install process. that system does not yet currently modify the documents before writing them out, so you’ll have to change the document to show correct values.
if you want to run it by hand:
- t elnet localhost 689
- auth user admin bongo
- store _system
- write /config 7 NUMBEROFCHARSINDOC Fglobal
- paste in new document
after that you should be running again. i’ve had the patch running on swedepop for the last day and not seen any issues with it, but please test it out.
other things this patch did include some basic housecleaning in smtp. there was an unused variable taking up stack space that i cleared out. smtp also got a new queue registration loop. occasionally on startup here, smtp would not correctly register with the queue becuase it hadn’t been up yet (which i just realized in my commit message i said store instead of queue, oops!). this should work now regardless as there is a loop with a sleep in it. i also change a ton of XplConsolePrintf() statements into Log() statements giving us a little better logging. i’m sure i misclassified some of them, but those are pretty easy changes.
in case some of you missed in the logs, i subscribed to the lkml just for traffic (i’ve gotten 176 mails in a little over 24hours — if you have any ideas for other high traffic mailing lists let me know, i’d love to subscribe). bongo is handling it ok and the convo stuff in dragonfly works pretty well, though i wish there was a way to have the “inbox” view formatted more like the summary view. perhaps just a different button or something.
state of the state: i’m all committed except for the experimental aliasing code that doesn’t work. branch feels very stable and useable at the moment except for that oddness with the antispam stuff marking messages as spam due to an odd header thrown in somewhere in the system (that’s next on my list unless something else comes up). after that aliasing, then perhaps a major overhaul of smtp or the requested changes to the imap mail importer to run once for all mailboxes. that is gonna be tricky i think especially since my python isn’t all that good. if anyone wants to volunteer for that i’d be happy to send it over
all that being said, i’ll be back sunday night some time. i hope to check my email some though i don’t exactly know what the status will be on online time. now’s the time i really miss having a laptop.