Skip to content

Commit f17fc18

Browse files
PhilETaylornicolas-grekas
authored andcommitted
[HttpClient] Fix Undefined array key "connection" #59044
Signed-off-by: Phil E. Taylor <[email protected]>
1 parent 88898d8 commit f17fc18

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

Response/CurlResponse.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,16 @@ private static function perform(ClientState $multi, ?array &$responses = null):
312312
}
313313

314314
$multi->handlesActivity[$id][] = null;
315-
$multi->handlesActivity[$id][] = \in_array($result, [\CURLE_OK, \CURLE_TOO_MANY_REDIRECTS], true) || '_0' === $waitFor || curl_getinfo($ch, \CURLINFO_SIZE_DOWNLOAD) === curl_getinfo($ch, \CURLINFO_CONTENT_LENGTH_DOWNLOAD) || (curl_error($ch) === 'OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0' && -1.0 === curl_getinfo($ch, \CURLINFO_CONTENT_LENGTH_DOWNLOAD) && \in_array('close', array_map('strtolower', $responses[$id]->headers['connection']), true)) ? null : new TransportException(ucfirst(curl_error($ch) ?: curl_strerror($result)).sprintf(' for "%s".', curl_getinfo($ch, \CURLINFO_EFFECTIVE_URL)));
315+
$multi->handlesActivity[$id][] = \in_array($result, [\CURLE_OK, \CURLE_TOO_MANY_REDIRECTS], true)
316+
|| '_0' === $waitFor
317+
|| curl_getinfo($ch, \CURLINFO_SIZE_DOWNLOAD) === curl_getinfo($ch, \CURLINFO_CONTENT_LENGTH_DOWNLOAD)
318+
|| ('C' === $waitFor[0]
319+
&& 'OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0' === curl_error($ch)
320+
&& -1.0 === curl_getinfo($ch, \CURLINFO_CONTENT_LENGTH_DOWNLOAD)
321+
&& \in_array('close', array_map('strtolower', $responses[$id]->headers['connection'] ?? []), true)
322+
)
323+
? null
324+
: new TransportException(ucfirst(curl_error($ch) ?: curl_strerror($result)).\sprintf(' for "%s".', curl_getinfo($ch, \CURLINFO_EFFECTIVE_URL)));
316325
}
317326
} finally {
318327
$multi->performing = false;

0 commit comments

Comments
 (0)