Skip to content

Commit cfec267

Browse files
committed
Move socket close in try-finally block in StreamAdapter
1 parent 38d7eb1 commit cfec267

File tree

2 files changed

+23
-20
lines changed

2 files changed

+23
-20
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ use [Keep a Changelog] (http://keepachangelog.com/).
88

99
### Fixed
1010

11-
- Missing `curl_close()` call
11+
- Missing `curl_close()` call in `CurlAdapter`
1212
- Missing `CURLOPT_NOSIGNAL` option to TRUE to prevent timeout
1313
- `CurlAdapter::clearOptions()`
14+
- Move socket close in try-finally block in `StreamAdapter`
1415

1516
## [2.4.0] - 2025-05-12
1617

src/Adapter/StreamAdapter.php

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -51,31 +51,33 @@ public function sendRequest(RequestInterface $request, ?HttpContext $context = n
5151
// Create socket
5252
$fp = $this->createSocketClient($request, $context);
5353

54-
$connectTime = microtime(true) - $initTime;
54+
try {
55+
$connectTime = microtime(true) - $initTime;
5556

56-
// Write request
57-
$this->writeRequest($fp, $request);
57+
// Write request
58+
$this->writeRequest($fp, $request);
5859

59-
$requestTime = microtime(true) - $connectTime;
60+
$requestTime = microtime(true) - $connectTime;
6061

61-
// Read response
62-
$response = $this->readResponse($fp, $request->getMethod(), $headersTime);
62+
// Read response
63+
$response = $this->readResponse($fp, $request->getMethod(), $headersTime);
6364

64-
$waitTime = $headersTime - $requestTime;
65-
$totalTime = $initTime - microtime(true);
65+
$waitTime = $headersTime - $requestTime;
66+
$totalTime = $initTime - microtime(true);
6667

67-
// Close socket
68-
fclose($fp);
69-
70-
$this->timings = new Timings(
71-
dateTime: $dateTime,
72-
send: $requestTime / 1000,
73-
wait: $waitTime / 1000,
74-
receive: ($totalTime - ($headersTime + $waitTime)) / 1000,
75-
total: $totalTime / 1000
76-
);
68+
$this->timings = new Timings(
69+
dateTime: $dateTime,
70+
send: $requestTime / 1000,
71+
wait: $waitTime / 1000,
72+
receive: ($totalTime - ($headersTime + $waitTime)) / 1000,
73+
total: $totalTime / 1000
74+
);
7775

78-
return $response;
76+
return $response;
77+
} finally {
78+
// Close socket
79+
fclose($fp);
80+
}
7981
}
8082

8183
/**

0 commit comments

Comments
 (0)