From 3dc99a9a420be989dad5a52c284fb53017989e0a Mon Sep 17 00:00:00 2001 From: AntonV1211 Date: Mon, 29 Jun 2026 17:07:33 +0700 Subject: [PATCH 1/4] Fix. SFW. Update SFW fix --- .../ApbctWP/HTTP/HTTPMultiRequestService.php | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php b/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php index 25ffdffaa..68b6aa573 100644 --- a/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php +++ b/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php @@ -131,18 +131,18 @@ public function executeMultiContract() */ public function fillMultiContract($http_multi_result) { - // Handle HTTP request error - if (!empty($http_multi_result['error'])) { - $this->error_msg = __CLASS__ . ': HTTP_MULTI_RESULT ERROR' . $http_multi_result['error']; - return $this; - } - // Validate result is an array if (!is_array($http_multi_result)) { $this->error_msg = __CLASS__ . ': HTTP_MULTI_RESULT INVALID'; return $this; } + // Handle HTTP request error + if (!empty($http_multi_result['error'])) { + $this->error_msg = __CLASS__ . ': HTTP_MULTI_RESULT ERROR' . $http_multi_result['error']; + return $this; + } + // Fill each contract with corresponding response data foreach ($this->contracts as $contract) { if (isset($http_multi_result[$contract->url])) { @@ -213,7 +213,15 @@ public function sendRequests($urls) // Configure and execute multi-request $http->setUrl($urls) ->setPresets('get'); - return $http->request(); + $result = $http->request(); + + // CommonRequest::request() returns a single value instead of an associative + // array when only one URL is passed. Normalize to expected format. + if (count($urls) === 1 && !is_array($result)) { + return [$urls[0] => $result]; + } + + return $result; } /** From 4a58ff7853b55e0a9a9770f12763451b037e0173 Mon Sep 17 00:00:00 2001 From: AntonV1211 Date: Mon, 29 Jun 2026 17:55:24 +0700 Subject: [PATCH 2/4] fix test error --- lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php b/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php index 68b6aa573..f0d8cc509 100644 --- a/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php +++ b/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php @@ -217,7 +217,7 @@ public function sendRequests($urls) // CommonRequest::request() returns a single value instead of an associative // array when only one URL is passed. Normalize to expected format. - if (count($urls) === 1 && !is_array($result)) { + if (count($urls) === 1 && !is_array($result) && isset($urls[0])) { return [$urls[0] => $result]; } From 5ac7842cf31a40ae262d532390513057160db5f5 Mon Sep 17 00:00:00 2001 From: AntonV1211 Date: Mon, 29 Jun 2026 18:10:10 +0700 Subject: [PATCH 3/4] fix review copilot --- lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php b/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php index f0d8cc509..0ef750d44 100644 --- a/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php +++ b/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php @@ -139,7 +139,7 @@ public function fillMultiContract($http_multi_result) // Handle HTTP request error if (!empty($http_multi_result['error'])) { - $this->error_msg = __CLASS__ . ': HTTP_MULTI_RESULT ERROR' . $http_multi_result['error']; + $this->error_msg = __CLASS__ . ': HTTP_MULTI_RESULT ERROR: ' . $http_multi_result['error']; return $this; } @@ -214,11 +214,12 @@ public function sendRequests($urls) $http->setUrl($urls) ->setPresets('get'); $result = $http->request(); + $url_list = is_array($urls) ? array_values($urls) : [$urls]; // CommonRequest::request() returns a single value instead of an associative // array when only one URL is passed. Normalize to expected format. - if (count($urls) === 1 && !is_array($result) && isset($urls[0])) { - return [$urls[0] => $result]; + if (count($url_list) === 1 && !is_array($result)) { + return [$url_list[0] => $result]; } return $result; From 81776a1d10a478c15a4a85e0c29737472457a2fe Mon Sep 17 00:00:00 2001 From: AntonV1211 Date: Mon, 29 Jun 2026 18:40:54 +0700 Subject: [PATCH 4/4] Fix. SFW. Update SFW fix --- .../ApbctWP/HTTP/HTTPMultiRequestService.php | 11 +---------- lib/Cleantalk/Common/HTTP/Request.php | 4 ++-- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php b/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php index 0ef750d44..997bdd638 100644 --- a/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php +++ b/lib/Cleantalk/ApbctWP/HTTP/HTTPMultiRequestService.php @@ -213,16 +213,7 @@ public function sendRequests($urls) // Configure and execute multi-request $http->setUrl($urls) ->setPresets('get'); - $result = $http->request(); - $url_list = is_array($urls) ? array_values($urls) : [$urls]; - - // CommonRequest::request() returns a single value instead of an associative - // array when only one URL is passed. Normalize to expected format. - if (count($url_list) === 1 && !is_array($result)) { - return [$url_list[0] => $result]; - } - - return $result; + return $http->request(); } /** diff --git a/lib/Cleantalk/Common/HTTP/Request.php b/lib/Cleantalk/Common/HTTP/Request.php index b7e7db7c9..ee16ab029 100644 --- a/lib/Cleantalk/Common/HTTP/Request.php +++ b/lib/Cleantalk/Common/HTTP/Request.php @@ -366,8 +366,8 @@ protected function runCallbacks() } unset($response); - // Return a single content if it was a single request - return is_array($this->response) && count($this->response) > 1 + // Return associative array if URLs were passed as array, single value otherwise + return is_array($this->url) ? $return_value : reset($return_value); }