Skip to content

More activesync fixes#13

Merged
amulet1 merged 2 commits intohorde:FRAMEWORK_6_0from
horde6:activesync_fixes2
Mar 11, 2026
Merged

More activesync fixes#13
amulet1 merged 2 commits intohorde:FRAMEWORK_6_0from
horde6:activesync_fixes2

Conversation

@amulet1
Copy link
Collaborator

@amulet1 amulet1 commented Mar 11, 2026

Redesign _handle() to use Search_Params/Search_Results objects

  • Introduce Horde_ActiveSync_Search_Params to pass typed search parameters
    to getSearchResults() instead of a loosely-structured $search_query array
  • Separate $query, $options, $rebuildResults, and $deepTraversal into
    distinct variables for clarity
  • Fix missing break in documentlibrary case causing fall-through into
    mailbox and overwriting $maxResults with 100
  • Fix $maxResults, $query, $searchbodypreference undefined when Options
    block is absent or default switch branch is hit
  • Fix null Range being treated as a protocol error; omitting Range is
    valid and should use default start/limit values
  • Fix bare STORE_STATUS_RANGEERR reference (missing self::)
  • Results pagination and total count now delegated to the backend via
    Search_Results object instead of being done in-place with array_slice()

Update queryMailbox() and _doQuery() to accept options and deepTraversal in Adapter.php

  • Add $options and $deepTraversal parameters to queryMailbox() and _doQuery(),
    matching the Search_Params refactor in the driver layer
  • Add typed signatures (array, bool, return type) to both methods
  • Move $imap_query, $mboxes, and $results initialization to after the
    early AND-query validation, avoiding unnecessary object creation on error

IMPORTANT: Requires changes in horde/Core#61.

… objects

- Introduce Horde_ActiveSync_Search_Params to pass typed search parameters
  to getSearchResults() instead of a loosely-structured $search_query array
- Separate $query, $options, $rebuildResults, and $deepTraversal into
  distinct variables for clarity
- Fix missing break in documentlibrary case causing fall-through into
  mailbox and overwriting $maxResults with 100
- Fix $maxResults, $query, $searchbodypreference undefined when Options
  block is absent or default switch branch is hit
- Fix null Range being treated as a protocol error; omitting Range is
  valid and should use default start/limit values
- Fix bare STORE_STATUS_RANGEERR reference (missing self::)
- Results pagination and total count now delegated to the backend via
  Search_Results object instead of being done in-place with array_slice()
…options and deepTraversal in Adapter.php

- Add $options and $deepTraversal parameters to queryMailbox() and _doQuery(),
  matching the Search_Params refactor in the driver layer
- Add typed signatures (array, bool, return type) to both methods
- Move $imap_query, $mboxes, and $results initialization to after the
  early AND-query validation, avoiding unnecessary object creation on error
@amulet1 amulet1 force-pushed the activesync_fixes2 branch from 723db70 to e52f047 Compare March 11, 2026 21:40
@amulet1 amulet1 merged commit 3afdf6a into horde:FRAMEWORK_6_0 Mar 11, 2026
0 of 8 checks passed
@amulet1 amulet1 deleted the activesync_fixes2 branch March 11, 2026 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants