rock’n roll

June 29, 2005

sylpheed new IMAP implemented

Filed under: mail, music — dinhviethoa @ 3:46 am

1. sylpheed
A pre-version of sylpheed with a new IMAP implementation has been snapshoted a fed to users for torture.
This currently basically implements the same thing with a better parser and IMAP command sender.
Every IMAP request are run in an IMAP thread (one thread per IMAP server).
This implementation introduced two regressions :
- NAMESPACE is no more implemented
- CRAM-MD5 authentication is no more implemented, LOGIN will always be used.
(were people really using those ?)

2. libetpan
This work let me find a bug in unused parts of libetpan low-level implementation of IMAP. This is fixed with libetpan-0.36cvs18.

3. music
- listening to Atreyu (metal) and Maxeen (rock), Killswitch Engage (metal) , Porcupine Tree (progressive rock).
- went to Iron Maiden concert.

4. conclusion
Let’s wait users feedback and commit to main sylpheed-gtk2 branch.
Then, go back on dev of etpanX.

here the main view :
main view

here the message composer :
message composer

June 24, 2005

sociology, biology

Filed under: book — dinhviethoa @ 9:01 pm

The Selfish Gene – Richard Dawkins
ISBN: 0192860925
french version ISBN: 2738112439

sylpheed IMAP

Filed under: mail — dinhviethoa @ 8:56 pm

1. plan for implementation of IMAP in sylpheed

- let’s use a persistent thread for all network connexions (main thread won’t block)
- use libetpan IMAP (low-level part)

imap thread :

while (!finished) {
   process_imap_command();
}


main thread :

imap_command()
{
  /*1 */
  queue_imap_command_in_thread();
  /* 2 */
  while (!command_finished) {
    gtk_event_loop(); /* (2.a.) */
  }
  /* 3 */
  convert_libetpan_result_to_sylpheed_data();
  /* 4 */
  match_previous_implementation_of_sylpheed();
}

we won’t need locks since concurrency will be handled by the imap thread.
(1) will queue the command in the thread
(2) will wait for the result of the command
(3) will convert libetpan data to sylpheed data structure
(4) will do the other stuff of previous implementation

(1) and (2)
the function must be reentrant during (1, 2) since other imap command can be called during that time (2.a.).
It looks like commands result will be processed in reversed order, is that a problem ?

2. comment
asynchronous API is really needed in sylpheed

3. let’s implement

Blog at WordPress.com.