Russian Qt Forum
Ноябрь 24, 2024, 18:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [Решено] QSslSocket: cannot resolve TLSv1_1_client_method  (Прочитано 19920 раз)
8Observer8
Гость
« : Июнь 19, 2014, 10:09 »

Привет!

Выдаются такие сообщения:
Цитировать
QSslSocket: cannot resolve TLSv1_1_client_method
QSslSocket: cannot resolve TLSv1_2_client_method
QSslSocket: cannot resolve TLSv1_1_server_method
QSslSocket: cannot resolve TLSv1_2_server_method
QSslSocket: cannot resolve SSL_select_next_proto
QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
QSslSocket: cannot call unresolved function SSL_get0_next_proto_negotiated

Не понимаю, что они означают. И в сети не нашёл простого решения, как от них избавиться. А вообще нужно ли от них избавляться? Это ничем не чревато?

Я подозреваю, что они выдаются при выполнении запроса get():
Код
C++ (Qt)
m_reply.reset(m_manager->get( QNetworkRequest( QUrl( url ) ) ) );
 

Вот весь код модуля:

Downloader.h
Код
C++ (Qt)
#ifndef DOWNLOADER_H
#define DOWNLOADER_H
 
#include <memory>
 
#include <QObject>
#include <QString>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QNetWorkAccessManager>
 
class Downloader : public QObject
{
   Q_OBJECT
 
public:
 
   void fetch( const QString &url )
   {
       m_reply.reset(m_manager->get( QNetworkRequest( QUrl( url ) ) ) );
       connect( m_reply.get( ), SIGNAL( finished( ) ),
                this, SLOT( replyFinished( ) ) );
       connect( m_reply.get( ), SIGNAL( downloadProgress( qint64, qint64 ) ),
                this, SLOT( slotDownloadProgress(qint64, qint64 ) ) );
   }
 
signals:
   void signalWithContent( QString * );
   void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
 
private slots:
   void replyFinished( )
   {
       QByteArray data = m_reply->readAll( );
       QString content( data );
       emit signalWithContent( &content );
   }
 
   void slotDownloadProgress( qint64 bytesReceived, qint64 bytesTotal )
   {
       emit downloadProgress( bytesReceived, bytesTotal );
   }
 
private:
   std::shared_ptr<QNetworkAccessManager> m_manager =
           std::make_shared<QNetworkAccessManager>( this );
 
   std::shared_ptr<QNetworkReply> m_reply;
};
 
#endif // DOWNLOADER_H
 
« Последнее редактирование: Июнь 23, 2014, 11:21 от 8Observer8 » Записан
Serr500
Гость
« Ответ #1 : Июнь 19, 2014, 10:28 »

OpenSSL в системе установлен?
Записан
8Observer8
Гость
« Ответ #2 : Июнь 19, 2014, 10:38 »

Скорее всего, нет. А какую версию посоветуете? Прям отсюда качать? http://www.openssl.org/source/ Или я в исходники залез? Там есть нормальный установщик?
Записан
carrygun
Гость
« Ответ #3 : Июнь 19, 2014, 10:54 »

Можно найти библиотеки и положить их просто рядом с приложением. Или установить в систему. Все находится в гугле.
Записан
Serr500
Гость
« Ответ #4 : Июнь 19, 2014, 11:36 »

Там есть нормальный установщик?
Есть. http://slproweb.com/products/Win32OpenSSL.html Выбираем 1.0.1h Light, соответствующую разрядности Qt. Не забудьте поставить MSVC Redist, иначе работать не будет.

Можно найти библиотеки и положить их просто рядом с приложением.
Положить нужно будет ssleay32.dll, libeay32.dll и msvcr90.dll.
Записан
8Observer8
Гость
« Ответ #5 : Июнь 20, 2014, 09:49 »

Парни, спасибо за ответы! Пока устанавливать OpenSSL не стал. Решил обойтись библиотеками. Скачал указанные вами .dll с сайта www.dll-files.com:
- libeay32.dll - http://www.dll-files.com/dllindex/dll-files.shtml?libeay32
- ssleay32.dll - http://www.dll-files.com/dllindex/dll-files.shtml?ssleay32
- msvcr90.dll - http://www.dll-files.com/dllindex/dll-files.shtml?msvcr90

И положил в папку:
- build-ParserHtmlRGB-Desktop_Qt_5_3_0_MinGW_32bit-Debug/debug

Сообщения по-прежнему выдаются Грустный
Записан
Serr500
Гость
« Ответ #6 : Июнь 20, 2014, 09:58 »

Вот ведь лезут на идиотские сайты... Вирусню оттуда ещё не схватили? Поставьте последний OpenSSL в систему и проверьте.

P.S. А то древнее дерьмо, что лежит на dll-files вообще от msvcr80 зависит...
Записан
8Observer8
Гость
« Ответ #7 : Июнь 20, 2014, 10:33 »

Я позже скачаю, поставлю и попробую, так как у меня usb-модем билайн. Скорость не выше 80-300 КБит/c. Скачивать могу только очень рано утром, до 7.00-8.00, когда скорость: 1.5-2.5 МБит/c. Местность, видимо, такая.

Напишите, пожалуйста, кратко: чем чревато отсутствие OpenSSL на машине пользователя?

Правильным ли будет решение не заставлять пользователей устанавливать OpenSSL, а просто располагать dll рядом с exe и так передавать пользователям?

Если у Вас есть эти dll под рукой, Вы могли бы прикрепить их к сообщению?

Вот ведь лезут на идиотские сайты... Вирусню оттуда ещё не схватили? Поставьте последний OpenSSL в систему и проверьте.
Я думал, что если этот сайт в top'е Google-поиска, то ему можно доверять... Может поэтому меня Norton замучил такими сообщениями (справа-внизу экрана), которые появляются через каждые 15 секунд, и я не знаю, как их отключить:
http://i6.pixs.ru/storage/4/2/1/224png_2366229_12633421.png
Если кто-нибудь подскажет, буду очень рад. А то они бесят. Хочется антивирус отключить, но страшно.
« Последнее редактирование: Июнь 20, 2014, 10:38 от 8Observer8 » Записан
Bepec
Гость
« Ответ #8 : Июнь 20, 2014, 10:44 »

Отформатируй диск Веселый Веселый
Сайт в топе лишь потому, что он хорошо прорекламирован Улыбающийся

А вот такое красочное окошко как раз и говорит об отражении атаки. Правда я нодом не пользуюсь - он дырявый.

PS вообще антивирусом не пользуюсь. Раньше было, сейчас проще посмотреть процессы/загрузку сети и вырубить вирусняк Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #9 : Июнь 20, 2014, 10:45 »

Если кто-нибудь подскажет, буду очень рад. А то они бесят. Хочется антивирус отключить, но страшно.
Конечно, с троянами веселей. Сразу чувствуешь себя членом большой дружной семьи bot-net. Улыбающийся
Записан
Serr500
Гость
« Ответ #10 : Июнь 20, 2014, 11:15 »

Напишите, пожалуйста, кратко: чем чревато отсутствие OpenSSL на машине пользователя?
Тем, что Qt-приложения не смогут работать через SSL.

Правильным ли будет решение не заставлять пользователей устанавливать OpenSSL, а просто располагать dll рядом с exe и так передавать пользователям?
Это решение будет работающим. Правильным или нет - сложно сказать. Здесь возможны споры. А пользователя вовсе не обязательно заставлять устанавливать, эту работу вполне может выполнить инсталлятор вашего приложения.

Если у Вас есть эти dll под рукой, Вы могли бы прикрепить их к сообщению?
К сожалению, нет...

Я думал, что если этот сайт в top'е Google-поиска, то ему можно доверять...
Топу нельзя доверять. В топе всегда проплаченные.
Записан
8Observer8
Гость
« Ответ #11 : Июнь 20, 2014, 12:37 »

Ещё не разбирался, как создавать свой инсталятор. Может на этом примере попробую когда-нибудь. У меня тут две мысли возникли:
- либо инсталятор копирует нужные dll в нужное место. Тогда это тоже самое, что и если бы я просто положил эти dll к exe, залил в архив и отдал пользователям
- либо инсталятор лезет в инет и устаналивает "MSVC Redist" и "OpenSSL" сам
Записан
Zerkin
Чайник
*
Offline Offline

Сообщений: 98


Просмотр профиля
« Ответ #12 : Июнь 20, 2014, 12:52 »

Если у Вас есть эти dll под рукой, Вы могли бы прикрепить их к сообщению?

Держи. К соощению не прикрепляю - сплошные проблемы, то файлы меньше 500 кб, то формат не тот Улыбающийся   https://drive.google.com/folderview?id=0Bx0tUxTiRS9AaHlkZ1RuTTRjOFU&usp=sharing

Топу нельзя доверять. В топе всегда проплаченные.

Всё куплено  Смеющийся
Записан
Zerkin
Чайник
*
Offline Offline

Сообщений: 98


Просмотр профиля
« Ответ #13 : Июнь 20, 2014, 12:57 »

Ещё не разбирался, как создавать свой инсталятор. Может на этом примере попробую когда-нибудь.

bitrock какой-нибудь посмотри
Записан
8Observer8
Гость
« Ответ #14 : Июнь 20, 2014, 13:13 »

Zerkin, спасибо! Проблема решена Улыбающийся

По поводу инсталятора. Если мне необходим будет OpenSSL для работы приложения, то инсталятор сам скачивает "MSVC Redist" и "OpenSSL" и устанавливает их?

Всё же, что касается этих трёх библиотек, то получается, что для моего приложения, которое скачивает контент html-страницы, они вообще не нужны? Их даже кидать к exe не надо и тем более писать инсталятор? Пользователь же эти сообщения не увидит?
« Последнее редактирование: Июнь 20, 2014, 13:18 от 8Observer8 » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.094 секунд. Запросов: 23.