Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Надежный SSL, Надежные альтернативы библиотеке OpenSSL 
:(
    Опции темы
nerdy_weirdie
  Дата 22.2.2008, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2007

Репутация: нет
Всего: нет



Есть программа - winsocket-TCP-клиент, многопоточный, работает через SSL. Использовал библиотеку OpenSSL. Но при работе постоянно возникают Access Violations при доступе к памяти, и возникают они именно в OpenSSL. Эту библиотеку я скачал уже в собранном виде - т.к. сам не разобрался, как ее собирать.
Скорее всего эти Вайолейшоны возникают из-за того, что программа работает в условиях, где довольно часто получает отказ в выделении памяти - сервер очень загружен. Вот пример стека при Access Violation:
    libeay32.dll!10048347()    
    [Frames below may be incorrect and/or missing, no symbols loaded for libeay32.dll]    
    libeay32.dll!100485cb()    
    libeay32.dll!1004a75d()    
    libeay32.dll!1004aed0()    
    ntdll.dll!7c82f9dd()    
    msvcr80.dll!free(void * pBlock=0x1000234d)  Line 110    C
>    msvcr80.dll!free(void * pBlock=0x1070e894)  Line 115 + 0x5 bytes    C
    libeay32.dll!100497e3()    
    libeay32.dll!1004ae6a()    
    libeay32.dll!1004b6b2()    
    libeay32.dll!1004b6aa()    
    ssleay32.dll!0033a40e()    
    ssleay32.dll!00349e84()    
    ssleay32.dll!0033fbb0()    
    ssleay32.dll!0033fe75()    
    ssleay32.dll!00349e84()    
    myapp.exe!CRequest::MakeRequest(const char * location=0x018bc9d8, const char * par_szQueryString=0x018bf4d8, char * buf=0x018be110, unsigned long max_len=5000, bool bSecure=true)  Line 1030 + 0xc bytes    C++
    

Подскажите пожалуйста более надежную альтернативу SSL-библиотеки, либо где взять версию OpenSSL без этих глюков. Я использую версию ssleay32.dll - 0.9.8.4 
Очень нужно.
Спасибо!

Это сообщение отредактировал(а) nerdy_weirdie - 22.2.2008, 17:20
PM MAIL   Вверх
JackYF
Дата 22.2.2008, 17:31 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 1
Всего: 162



Цитата(nerdy_weirdie @  22.2.2008,  16:12 Найти цитируемый пост)
что программа работает в условиях, где довольно часто получает отказ в выделении памяти

Цитата(nerdy_weirdie @  22.2.2008,  16:12 Найти цитируемый пост)
либо где взять версию OpenSSL без этих глюков.

У меня нет слов. Отказ в выделении памяти стал уже штатной ситуацией?  smile
Перечисли мне, пожалуйста, программные продукты, которые ухитряются работать нормально, если периодически получают отказ в памяти?



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
nerdy_weirdie
Дата 22.2.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2007

Репутация: нет
Всего: нет



Цитата(JackYF @ 22.2.2008,  17:31)
Цитата(nerdy_weirdie @  22.2.2008,  16:12 Найти цитируемый пост)
что программа работает в условиях, где довольно часто получает отказ в выделении памяти

Цитата(nerdy_weirdie @  22.2.2008,  16:12 Найти цитируемый пост)
либо где взять версию OpenSSL без этих глюков.

У меня нет слов. Отказ в выделении памяти стал уже штатной ситуацией?  smile
Перечисли мне, пожалуйста, программные продукты, которые ухитряются работать нормально, если периодически получают отказ в памяти?

Спасибо за ответ. Сори, я может неточно выразился. Я имею ввиду ситуацию, когда оператор new выбрасывает MemoryException, либо маллоки там всякие NULL возвращают. Обычно, грамотно написанное приложение умеет справляться с такой ситуацией.. По крайней мере, я всегда стараюсь обрабатывать эту ситуацию.
PM MAIL   Вверх
JackYF
Дата 22.2.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 1
Всего: 162



Цитата(nerdy_weirdie @  22.2.2008,  17:01 Найти цитируемый пост)
Я имею ввиду ситуацию, когда оператор new выбрасывает MemoryException, либо маллоки там всякие NULL возвращают.

Эта ситуация называется "крах системы". Самое большее, что программа может в этом случае сделать, это более-менее корректно завершится и не повредить данные, с которыми оперирует.

Цитата(nerdy_weirdie @  22.2.2008,  17:01 Найти цитируемый пост)
По крайней мере, я всегда стараюсь обрабатывать эту ситуацию. 

И как истории успеха? На практике проверял, что твои обработчики работают?

Каждый new/malloc в программе так проверяешь?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
nerdy_weirdie
Дата 22.2.2008, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2007

Репутация: нет
Всего: нет



Цитата(JackYF @ 22.2.2008,  18:37)
Цитата(nerdy_weirdie @  22.2.2008,  17:01 Найти цитируемый пост)
Я имею ввиду ситуацию, когда оператор new выбрасывает MemoryException, либо маллоки там всякие NULL возвращают.

Эта ситуация называется "крах системы". Самое большее, что программа может в этом случае сделать, это более-менее корректно завершится и не повредить данные, с которыми оперирует.

Цитата(nerdy_weirdie @  22.2.2008,  17:01 Найти цитируемый пост)
По крайней мере, я всегда стараюсь обрабатывать эту ситуацию. 

И как истории успеха? На практике проверял, что твои обработчики работают?

Каждый new/malloc в программе так проверяешь?

Незнаю, крах ли это  smile , но винда сплошь и рядом выдает такие сюрпризы ресурсоемкому ПО
Обрабатываю очень просто - вместо new использую макрос который в случае отказа ненадолго замораживает поток, и затем делает следующую попытку, а чтобы избежать Access Violations - поубирал всю инициализацию из конструкторов, потому как отлавливал ситуацию, когда они даже при отказе вызывались, - вполне эффективно  smile 

Это сообщение отредактировал(а) nerdy_weirdie - 22.2.2008, 18:48
PM MAIL   Вверх
nerdy_weirdie
Дата 22.2.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2007

Репутация: нет
Всего: нет



хм.. а может есть какой-то способ установить процессу такой приоритет, когда система не имеет права отказать ему в памяти?
PM MAIL   Вверх
JackYF
Дата 22.2.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 1
Всего: 162



Эх, как страшно жить. Ну да ладно. Если винда такая жестокая...

Цитата(nerdy_weirdie @  22.2.2008,  18:03 Найти цитируемый пост)
когда система не имеет права отказать ему в памяти? 

Если памяти нет, то хоть заприоритеться smile А если есть, но ОС не даёт - пенять на ОС.




--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
jonie
Дата 22.2.2008, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



может стоит вообще подумать о замене CRT, в частности менеджера памяти... например посмотреть на quiсkHeap на RSDN была такая ...
есть еще libssh-2 (http://www.libssh2.org/wiki/index.php/Main_Page)...
Цитата

хм.. а может есть какой-то способ установить процессу такой приоритет, когда система не имеет права отказать ему в памяти? 
драйвер с максимальным IRQL )

Это сообщение отредактировал(а) jonie - 22.2.2008, 23:02


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
luzver
Дата 23.2.2008, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.2.2008

Репутация: нет
Всего: нет



А не могли бы сырцом поделиться, мне нужно что-то очень простое для криптования потока http\https smile 
PM MAIL   Вверх
jonie
Дата 23.2.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



есть туча https серверов с такими возможностями от 900 строк кода, кроме того есть пример в openSSL


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0673 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.