Closing connection using TLS
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 45/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- php
- 領域
- networking
研究方向
Start in src/Connection.php around the shutdown logic referenced by the issue, then reproduce the provided TLS server example. Compare the proposed fclose and stream_socket_enable_crypto approaches against PHP's TLS shutdown behavior; done means closing the connection cleanly without the current TLS shutdown problem.
由索引模型根據 Issue 內容生成。
描述
When closing a connection on a server using TLS, eg:
<?php
require __DIR__ . '/vendor/autoload.php';
$server = new React\Socket\TcpServer($port = 9900);
$server = new React\Socket\SecureServer($server, null, [
'local_cert' => 'server.pem',
'passphrase' => 'secret'
]);
$server->on('connection', function (React\Socket\ConnectionInterface $connection) {
echo '[' . $connection->getRemoteAddress() . ' connected]' . PHP_EOL;
// do stuff
$connection->end();
});
the connection is not closed properly, as https://github.com/reactphp/socket/blob/e04478a14b22c2f85697b917dcc26fa8f1654098/src/Connection.php#L123-L133
uses https://www.php.net/manual/en/function.stream-socket-shutdown.php.
Note comment https://www.php.net/manual/en/function.stream-socket-shutdown.php#125659 which states tls does not get shut down properly that way.
Solution seems to be to replace @\stream_socket_shutdown($this->stream, \STREAM_SHUT_RDWR); with \fclose($this->stream).
Other solution seems to be to call @\stream_socket_enable_crypto($this->stream, false); before the socket shutdown as mentioned in comment https://www.php.net/manual/en/function.stream-socket-shutdown.php#126303
- 主要語言
- PHP
- 星號
- 1.3k
- 分支
- 160
- PR 合併指標
- 30 天內沒有已合併 PR
貢獻指南
這個儲存庫沒有索引到貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
reactphp/socket 的其他 Issue
-
question
難度 3/5 1-2 天 新手友好度 45/100
-
maintenance
難度 5/5 一週以上 新手友好度 20/100
-
help wanted new feature
難度 3/5 1-2 天 新手友好度 45/100
-
help wanted new feature
難度 5/5 一週以上 新手友好度 20/100
-
Support STARTTLS 未關閉help wanted new feature
難度 5/5 一週以上 新手友好度 25/100
相似的 Issue
-
a11y admissions.uiowa.edu needs grooming SiteImprove best practice
難度 2/5 1-3 小時 新手友好度 70/100
-
Save States Menu 未關閉
難度 2/5 1-3 小時 新手友好度 68/100
-
難度 2/5 1-3 小時 新手友好度 84/100
pluginsGLPI/datainjection#673 ·
-
難度 2/5 1-3 小時 新手友好度 82/100
octobercms/october#6130 ·
-
難度 2/5 1-3 小時 新手友好度 82/100
getgrav/grav-plugin-form#656 ·