Fix Collivery auth handling: guard missing data, add cURL timeouts, and treat invalid JSON as API error to prevent warnings and long hangs.#134
Open
RichardGeorgeDavis wants to merge 3 commits intoCollivery:masterfrom
Conversation
…nd treat invalid JSON as API error to prevent warnings and long hangs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I patched the Collivery client to stop the Undefined array key "data" warning and to avoid long hangs when the API is slow/unreachable. I also made invalid/non‑JSON responses fail fast instead of bubbling into warnings.
Changes:
Guarded ['data'] access in makeAuthenticationRequest() and route missing data through existing error handling.
Added cURL connect/total timeouts (defaults 10s/20s, overridable via config).
Added a safe fallback when the API returns invalid JSON.
Guarded cached auth keys before use and made getColliveryUserId() return null on auth failure.
Fixed the cURL handle leak in GET by initializing the handle only once per branch.
Resolved relative cache paths to a writable base (WP_CONTENT_DIR if defined, otherwise sys_get_temp_dir()), and normalized trailing slash.
Collivery.php
MdsCache.php