SSL接続をプロキシするプロキシサーバーを作成していますが、通常のトラフィックではすべて正常に動作しています。しかし、電子メールの添付ファイルのような大きなファイル転送(20KBを超えるもの)があると、ファイルの書き込みが完了する前にTCPレベルで接続がリセットされます。私はノンブロッキングIOを使用しており、特定の接続ごとにスレッドを生成しています。 SSL接続の途中での処理を処理する方法
接続は、私は次の操作を行うにしてい
:- スポーンスレッドクライアントへ
- 接続(暗号化されていない)と接続要求(他のすべての要求は無視されます)
- 作成を読みますサーバーに接続したことをクライアントに伝える(暗号化されていない)
- クライアントとの安全な接続を作成し、クライアントとの間でプロキシデータを開始します。 2つはselectループを使用して読み取りと書き込みが発生するかどうかを判断します
- 基になるソケットが閉じられるか、エラーが発生すると接続は閉じられ、スレッドは終了します。
通常のサイズのデータ(通常のWebページなど)ではうまく動作しますが、ファイルが大きすぎるとエラーコード(使用されているWebアプリケーションによって異なります)またはエラー:接続が中断されました。
TCP、HTTP、SSLのいずれかに関係なく、何が接続を閉じる原因になっているかわかりません。その情報はまったく見つかりません。いくつかのブラウザでは、SSL_writeの直後にsleep文を書くと動作しますが、これは他のブラウザで他の問題を引き起こすようです。睡眠は長くなる必要はなく、実際には遅れが生じる。私は現在、書き込みごとに4ms、読み取りごとに2msに設定しています。これは古いFirefox、HTTPアップロードのChrome、オペラで完全に修正されています。
これ以上の情報が必要な場合は、どんなリードもありがとうございます。ありがとうございました!
-SAM
私はあなたが問題を示すためにいくつかのコードを投稿する必要があると思います。 – caf