Какой код Indy TIdHTTPServer отвечает за проверку серверных версий и шифров на стороне сервера? - PullRequest
0 голосов
/ 19 февраля 2019

Я использую серверные компоненты Indy 10.6.2 (текущая версия от SVN) в Delphi 2007 и клиентские компоненты в приложении Delphi 6, и, конечно, OpenSSL.

Я получаю сообщение об ошибке "Соединение с SSL. EOF"Было замечено, что нарушает протокол "в клиентском приложении.

Насколько я обнаружил в Интернете, это происходит из-за сокета сервера, закрывающего его соединение, например, из-за несоответствия версий SSL или шифров между HTTPклиент и сервер.Звучит вполне логично.

Я бы хотел отладить (представить больше отчетов на стороне сервера об этом несоответствии), но где находится код, расположенный в библиотеках Indy (System, Core, Protocols), который проверяет и закрываетсоединение с сервером (которое отклоняет запрос клиента), когда наблюдаются какие-либо несовместимости?

Ответ на мой вопрос может решить «Ошибка соединения с SSL. EOF обнаружил, что нарушает протокол», но это также может помочь вБудущее, чтобы решить любые проблемы во время рукопожатия, то есть, если я реализую более обширную регистрацию об отклоненных соединениях.

1 Ответ

0 голосов
/ 19 февраля 2019

где находится код в библиотеках Indy (System, Core, Protocols), который проверяет и закрывает соединение с сервером (которое отклоняет запрос клиента) при обнаружении любых несовместимостей?

Нигде, потому что это не Инди, которая делает проверки.Это сам OpenSSL выполняет проверки внутри, пока он обрабатывает рукопожатие SSL.OpenSSL имеет дескриптор сокета.Когда он обнаруживает проблему с рукопожатием, он немедленно закрывает соединение с сокетом и возвращает ошибку Indy, которая затем закрывает дескриптор сокета.

...