Skip to content
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

fix(imap): do a single full sync when QRESYNC is enabled #10035

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

st3iny
Copy link
Member

@st3iny st3iny commented Aug 21, 2024

To minimize the dependence on the cache, we should do a single full sync when QRESYNC is enabled. This is more efficient as Horde contains (and QRESYNC provides) shortcuts for this case.

This PR also makes sure that only a single sync token is used when QRESYNC is enabled. It will always be the new message token as it is the first one in the partial sync logic and will trigger the actual full sync.

This is a follow-up to #8968. We already force all three criteria when QRESYNC is enabled and now we are only performing a single call to Horde for syncing.

Background

The server reports all changes on the initial EXAMINE command when QRESYNC is enabled. Only new messages have to be fetched manually afterwards. Changed and vanished messages are reconciled right away without needing to perform any more fetch commands.

@st3iny st3iny self-assigned this Aug 21, 2024
@st3iny st3iny force-pushed the fix/imap/qresync-single-full-sync branch 2 times, most recently from ba4f87f to f480790 Compare August 31, 2024 10:42
@st3iny st3iny added this to the v4.0.0 milestone Sep 2, 2024
@st3iny st3iny marked this pull request as ready for review September 2, 2024 05:26
Copy link
Member

@ChristophWurst ChristophWurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Will also give this a test

lib/IMAP/Sync/Synchronizer.php Outdated Show resolved Hide resolved
@ChristophWurst ChristophWurst removed this from the v4.0.0 milestone Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🏗️ In progress
Development

Successfully merging this pull request may close these issues.

2 participants