Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Radmir от Март 13, 2013, 07:45



Название: Кто нибудь понимает, что происходит?
Отправлено: Radmir от Март 13, 2013, 07:45
Привет всем!

QT 4.8.2 под WinXP-32.

Вхожу из программы в Интернет через прокси.
Установил прокси с указанием всех параметров - host, port, type, user, password.
Ловлю сигнал proxyAuthenticationRequired.
В слоте пишу:
   auth->setUser(auth->user());
   auth->setPassword(auth->password());
и он работает нормально, то есть пускает на страницу сайта.
Если до этого вывести auth->user() и auth->password(), то там те, которые были установлены в прокси.
Если эти строки закоментировать, то получаю отказ в доступе.

Кто-нить понимает эту красоту?

С уважением, Радмир.


Название: Re: Кто нибудь понимает, что происходит?
Отправлено: Radmir от Март 19, 2013, 08:59
Судя по всему, это особенность реализации языка Qt.

Если закомментировать строку
    auth->setUser(auth->user());
то proxyAuthenticationRequired впадает в цикл;
если закомментировать строку
    auth->setPassword(auth->password());
то аутентификация проходит.

У внутреннего члена auth есть частная переменная, в которой храниться переданное значение параметра, по умолчанию она пуста, тем самым прокси знает, обновилось ли имя, или пароль пользователя и может в этом случае выполнить вторую попытку...
Если всемогущий ALL ничего не добавит, вопрос можно закрыть.

С уважением,
Радмир