-
-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Remove "jobs" from imap_markseen if folder doesn't exist (#5870) #5887
Conversation
If the folder does not appear in the list, it does not necessarily mean it does not exist. Seems very dangerous to remove all data about DeltaChat folder simply because it does not appear in the list, it may still be possible to create and select it. Dovecot explicitly has this setting: https://doc.dovecot.org/configuration_manual/namespace/#core_setting-namespace/list |
I think more robust approach to do this is not when we LIST folders, but when we actually try to use database record. E.g. if we want to store |
cb5e50a
to
a490f75
Compare
It was the first thing i wanted to implement, but the problem is that we can't differ temporary errors from permanent ones, all we have is anyhow errors. Don't we want to add C-style error codes someday? Another problem is that this way only |
If needed Actually this is not needed. |
a490f75
to
0a2d52d
Compare
I added a |
0a2d52d
to
98d38b4
Compare
79d1cc6
to
160cf9f
Compare
Add a `create` param to `select_with_uidvalidity()` instead of always trying to create the folder and return `Ok(false)` from it if the folder doesn't exist and shouldn't be created, and handle this in `store_seen_flags_on_imap()` by just removing "jobs" from the `imap_markseen` table. Also don't create the folder in other code paths where it's not necessary.
160cf9f
to
3f2b35d
Compare
Close #5870. I think a test isn't really necessary, though can add if someone thinks differently