[haiku-development] Re: Ready to go for R1/Alpha4 yet?

  • From: Clemens <clemens.zeidler@xxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Wed, 08 Aug 2012 09:33:05 +1200

On Tue, 07 Aug 2012 23:07:10 +1200, Axel Dörfler <axeld@xxxxxxxxxxxxxxxx>
wrote:


This actually happened to mmlr, it's not just a myth.

a bug report would have been nice!

Its actually pretty hard do delete anything in the IMAP folder because
EXPUNGED is never called. Only on servers where EXPUNGED is called
automatically (e.g. gmail) mails can be deleted. I'm using gmail quite a
lot with multiple accounts in parallel and I never noticed that I lost a
mail. Furthermore, only if you select "delete mails remotely when
deleted locally" mails are marked as deleted on the server.

Well, but this is likely to be what the user wants to happen.

right, that is a known but "harmless" bug

The point of IMAP is actually to stay in sync with the server while
accessing the server from multiple machines. If you don't want a
bidirectional sync use the POP3 protocol!?

Exactly, that's why mails should be deleted on the server when they are deleted locally (and not re-downloaded) :-)

no, not in the case I described, the problem is that mdr does not know what is happening to your files when mdr is not running. A simple rename of the folder could be interpreted that the folder has been deleted and mdr may delete the remote mails when it is started. That is probably not what you wanted to do. Its actually not clear what the user wanted to do. Because of
that I choose the safer option to re-download the gone folder in this case.

By the way thats actually one reason for an IMAP fs: take track what a user is doing with the local mails and don't be blind if mdr is not running, if the fs is not mounted the user can't mess with the local mail cache.


Just noticed another bug in your implementation that could be responsible. To quote RFC 3501:
"An EXPUNGE response MAY be sent during a UID command."
You are actually using "UID FETCH", but you disable the EXPUNGE handler before the call, and only enable it again afterwards.


that sounds more likely! :)

cheers,
        Clemens

Other related posts: