Какая версия Openssl совместима с Indy 10 версий 5519 и 5438? - PullRequest
0 голосов
/ 07 октября 2019

Я использую Indy 10 build 5438 под Delphi 5 с OpenSSL 1.0.2m.

Существует некоторая проблема с отправкой электронной почты TLS v1.2 с некоторыми (не всеми) учетными записями электронной почты, и яХотите попробовать обновить DLL-файлы OpenSSL для Indy 10, но я не знаю, какой из них совместим.

Какая последняя (!) версия OpenSSL совместима с Indy 10 build 5438?

Я уже пытался установить последнюю сборку Indy 10 5519 под Delphi 5 с fulld_5.bat, но это не удалось:

IdIMAP4.pas(2958) Error: Undeclared identifier: 'LLTextBuf'

IdIMAP4.pas(2958) Error: Incompatible types

IdIMAP4.pas(3185) 
IdIMAP4.pas(3697) 
IdIMAP4.pas(4209) 
IdIMAP4.pas(4721) 
IdIMAP4.pas(5233) 
IdIMAP4.pas(5745) 
IdIMAP4.pas(6257) 
IdIMAP4.pas(6769) 
IdIMAP4.pas(7251) 

IndyProtocols50.dpk(267) Fatal: Could not compile used unit 'IdIMAP4.pas'
Error!

1 Ответ

0 голосов
/ 07 октября 2019

Indy 10 использует стандартные библиотеки OpenSSL. Любая версия OpenSSL 1.0.2 совместима с Indy ( Indy пока не поддерживает OpenSSL 1.1.x ). Однако на зеркале Indy's Fulgan доступны готовые версии OpenSSL 1 (созданные без зависимостей времени выполнения MS Visual C ++):

https://indy.fulgan.com/SSL

1: На момент написания этой статьи последняя доступная версия была 1.0.2t.

Что касается ошибки IdIMAP4.pas, которая была опечаткой в ​​недавней проверке кода. В строке 2958 ссылку на LLTextBuf необходимо изменить на LTextBuf.

LUseNonSyncLiteral := LCanUseNonSyncLiteral and ((not LNonSyncLiteralIsLimited) or (Length({LLTextBuf}LTextBuf) <= 4096)); // <-- change LLTextBuf to LTextBuf

Теперь я исправил это в официальном коде Indy (редакция SVN 5520).

...