Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2014, 16:29   #1
DirtyDog
Новичок
Джуниор
 
Регистрация: 23.05.2014
Сообщений: 1
По умолчанию Странное поведение OpenSSL

Заранее прошу прощения за возможно глупый вопрос. Ситуация такая:
программа работает в 100 потоков одновременно, отсылает GET и POST запросы на HTTPS-сайты. Все это она делает через SOCKS прокси. Если в папке с программой НЕ лежат библиотеки OpenSSL, то программа подхватывает их откуда-то из Windows (хотя мне так и не удалось найти их местонахождение), их версия определяется "OpenSSL 1.0.0g 18 Jan 2012". В таком случае программа работает отлично. Отлично работает, если ее запускать проводником или функцией PHP "popen". Но если ее открывать другой программой (написанной на Delphi и лежащей в той же папке) через "shellexecute", то встроенная в систему OpenSSL почему-то не подгружается, версия OpenSSL никак не определяется, все запросы по HTTPS возвращают ошибку 500. Когда я обнаружил эту странность, первое, что пришло в голову - скопировать библиотеки в папку и не заморачиваться. Сделал - заработало, но теперь некоторые запросы становятся "вечными", т.е. полностью игнорируются любые таймауты. Т.е. при таком запросе (писал по памяти, если где-то опечатался, простите):
PHP код:
Log('1');
try
  
Tmp := idHTTP.Get(URL);
except 
  on E
Exception do
  
begin
    Log
(E.Message);
  
end;
end;
Log('2'); 
В логе я получаю лишь "1" и все, дальше поток висит вечность. Сначала подумал, что в Indy где-то что-то не учли, перевел на Synapse - тоже самое. Потом еще перевел на Internet Component Suite (в синхронном режиме) - тоже самое. Во всех случаях при удалении библиотек из папки начинало работать нормально без зависаний, но при shellexecute не подхватывать библиотеки.

Понятное дело, что проблему можно обойти костылями, но мне все таки хотелось бы разобраться, почему такое может происходить.
DirtyDog вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странное поведение TToolButton LISTAT Компоненты Delphi 0 31.08.2013 17:20
Странное поведение SortedSet Gapro C# (си шарп) 3 04.05.2012 17:35
Странное поведение realloc eraserhp Общие вопросы C/C++ 7 17.05.2010 09:52
Странное поведение gets alex_alpha Общие вопросы C/C++ 3 27.03.2010 18:21