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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [4.3.1 - 4.4.0] Пример QT Http падает при использовании https  (Прочитано 8071 раз)
sergmann
Гость
« : Июль 03, 2008, 12:41 »

Здравствуйте! Помогите, пожалуйста, разобраться с проблемой ... безрезультатно уже бьюсь второй день.
Суть: берём пример из Qt "http", вводим в строке ввода, например: "https://user:password@www.server.ru:443/index". При этом, если имя_пользователя и пароль верны, то всё в порядке, и всё успешно работает, но если они неверны, то выдаётся диалог с запросом имени и пароля, и если в диалоге нажать "Отмена", то программа падает на QT 4.4.0 и уходит в бесконечный цикл на QT 4.3.1. Я напаролся на эту ошибку, когда писал своего https клиента. Не могу найти решения для выхода из сложившейся ситуации, как мне успешно обработать ситуацию с некорректными данными аутентификации.
Если кто-нибудь в курсе дела, помогите, пожалуйста.
Записан
ритт
Гость
« Ответ #1 : Июль 03, 2008, 12:56 »

4.4.0; mingw - пример не падает и не циклится
для чистоты эксперимента приведи конкретный адрес с неправильными логином и паролем, для которого у тебя происходит краш
Записан
sergmann
Гость
« Ответ #2 : Июль 03, 2008, 13:20 »

Я только сейчас заметил, что падает только если сразу нажать "Отмена" после появления диалога, а если немного подождать то не падает, т.е. если закомментить вызов диалога, то должно падать:


Код:
void HttpWindow::slotAuthenticationRequired(const QString &hostName, quint16, QAuthenticator *authenticator)
{
/*
    QDialog dlg;
    Ui::Dialog ui;
    ui.setupUi(&dlg);
    dlg.adjustSize();
    ui.siteDescription->setText(tr("%1 at %2").arg(authenticator->realm()).arg(hostName));
   
    if (dlg.exec() == QDialog::Accepted) {
        authenticator->setUser(ui.userEdit->text());
        authenticator->setPassword(ui.passwordEdit->text());
    }
*/
}


Вот, например, адрес: https://aaa:aaa@user.infoline.su:443/stat/cust_inf для проверки.
Хотя у меня сборка в MSVC.
« Последнее редактирование: Июль 03, 2008, 14:42 от pastor » Записан
ритт
Гость
« Ответ #3 : Июль 03, 2008, 13:50 »

действительно крашит (openSSL 0.9.8g - более свежей версии под рукой нет).
однако, дело вовсе не в аутентификаторе (тем более, что в 4.3.1 уходит в вечность)
ни разу не падает, если закомментировать строку 261 (qt-all-opensource-4.4.0):
Код:
        http->ignoreSslErrors();

отрапортуй троллям. обязательно укажи https://aaa:aaa@user.infoline.su:443/stat/cust_inf для проверки.
Записан
sergmann
Гость
« Ответ #4 : Июль 03, 2008, 14:24 »

Троллям отрапортовал ... вопрос в том, как бы обойти эту проблему (проект горит)? Я не могу убрать http->ignoreSslErrors(), мне этот вызов необходим.
Записан
sergmann
Гость
« Ответ #5 : Август 09, 2008, 21:17 »

Прикольно, в QT 4.4.1 эту ошибку уже исправили.
Записан
ритт
Гость
« Ответ #6 : Август 09, 2008, 21:55 »

вот и хорошо. правда, не могу сходу найти упоминание об этом исправлении в ченджлоге...

будем считать ветку закрытой, но пусть остаётся на будущее
Записан
sergmann
Гость
« Ответ #7 : Август 10, 2008, 00:05 »

В логе этой баги, кажись, нет. Просто я проверил, сэмпл из новой версии теперь не падает. Видимо, другие исправления устранили эту ошибку.
Записан
ритт
Гость
« Ответ #8 : Август 10, 2008, 00:41 »

ну, посмотри тогда состояние таски, которую ты отрапортовал - если не закрыта, напиши им, что само пофиксилось Показает язык
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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