Странный srv_cookie в протоколе OSCAR. Очень мешает жить :)
От: Ozean Engel  
Дата: 20.09.04 11:51
Оценка:
Реализовал протокол OSCAR (написал свой мини-ICQ-клиент). Обещаю, если потребуется, _обязательно_ разъясню, как и на чем (это не стандартно, поэтому объяснять долго), но он в принципе работает, а вопрос идет именно по _протоколу_, поэтому пока пропустим этот момент. Возникла следующая досадная проблема.
При выполнении авторизации на login.icq.com серевер присылает пакет FLAP, называемый srv_cookie и обычно содержащий в TLV 05 текст:
адрес:порт
основного сервера для подключения, например,
205.188.8.175:5190
Проблема: иногда вместо TLV 05 пакет содержит TLV 04, в которой вместо <адрес:порт> в виде, указанном выше, содержится текст
http://www.aol.com?ccode=us&amp;lang=en
либо просто
http://www.aol.com
, представляющий собой ссылки, ведущие на соответствующий сайт. Естественно, что логин обламывается.
Мне известно, что при указании неверного пароля присылается та же TLV 04 с следующей ссылкой:
http://www.aim.com/errors/MISMATCH_PASSWD.html?ccode=us&amp;lang=en
, ведущая на страницу восстановления пароля, и я это соответствующим образом обрабатываю. Первая же ссылка приходит непонятно с какой периодичностью и/или при каких условиях. Я настроил клиент на автореконнект при возникновении такого прецедента. И дело в том, что иногда все работает вообще без этих ссылок как часы, иногда нормальные реквизиты приходят после 1-2 попыток, а иногда можно долбить целый день — и нормального SRV_COOKIE так и не придет. При этом с тем же уином обычные клиенты тоже иногда логинятся, иногда — перестают.
Тестировалось примерно на десятке уинов.
Вопросы:
1. В каких случаях это происходит? Вообще, встречался ли кто-то с таким явлением?
2. Если это официальная реклама, почему не удается воспроизвести данное явление на других клиентах (Миранда, ICQ Pro, ICQ Lite и пр.)? Т.е. сколько я ни тестировал, снифферинг ИХ процесса логина никогда не отклонялся от канонического (не было никаких реконнектов, им вообще не приходили такие пакеты, только с TLV 05).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.