Не успел я проснуться, как ко мне стукнул mlu с новостью о том что вышел Mail.ru Агент с поддержкой жаббера. А дальше стало интересно…

Внимание! Я ни в коем случае не хочу сказать что в коде Мобильного Мейл.ру Агента используются наработки из GPL проектов. Эта статья всего лишь является сравнением работы агента

Он рассказал, что первым делом заглянул в xml консоль и увидел вот такую вещь:

<presence from="test1234@vke.ru/MobileAgent" to="jabber@vke.ru/Notebook" xml:lang="en">
<priority>5</priority>
<c xmlns="http://jabber.org/protocol/caps" node="http://miranda-im.org/caps" ver="1.x"
/>
<status>I'm online!</status>
<status>Custom status</status>
</presence>


Посмеявшись над двойным статусом и вилдкардовой версией, заметили node. Неужели кто-то решил использовать капсы миранды?

Дальше мы решили сравнить работу с сервером через открытый протокол XMPP сразу после логина (пакеты от сервера вырезаны за ненадобностью)

Miranda IM Jabber Мобильный Агент v1.15
<iq type="set" id="mir_0">
<bind
xmlns="urn:ietf:params:xml:ns:xmpp-bind">
<resource>Miranda</resource>
</bind>
</iq>
<iq type='set' id='seq_10'>
<bind
xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<resource>MobileAgent</resource>
</bind>
</iq>
<iq type="set" id="mir_1">
<session
xmlns="urn:ietf:params:
xml:ns:xmpp-session" />
</iq>
<iq type='set' id='seq_11'>
<session
xmlns='urn:ietf:params:
xml:ns:xmpp-session'/>
</iq>
<iq type="get" id="mir_2">
<query xmlns="jabber:iq:private">
<roster xmlns="roster:delimiter" />
</query>
</iq>
<iq type='get' id='seq_12'>
<query xmlns='jabber:iq:private'>
<roster xmlns='roster:delimiter'/>
</query>
</iq>
<iq type="get" id="mir_3">
<query xmlns="jabber:iq:private">
<storage xmlns="storage:bookmarks" />
</query>
</iq>

­

<iq type='get' id='seq_13'>
<query xmlns='jabber:iq:private'>
<storage xmlns='storage:bookmarks'/>
</query>
</iq>
<iq type="get" to="vke.ru" id="mir_4">
<query xmlns="
http://jabber.org/protocol/disco#info" />
</iq>
<iq type='get' to='vke.ru' id='seq_14'>
<query xmlns='
http://jabber.org/protocol/disco#info'/>
</iq>

Небольшой анализ:

Закроем глаза на то что id пакетов выглядят сходно. В случае с мирандой они формируются начиная с нуля, здесь с 10. Кстати, если вдруг аол будет реализовывать жаббер сервер то им стоит это взять на заметку — есть возможность банить хоть один клиент =). Каждый пакет соответствует мирандовскому. Можно было бы списать это на простое совпадение, если бы не несколько забавных вещей, а именно:

  • Пакет mir_2 в миранде используется для того чтобы запросить с сервера разделитель групп, у нас подгруппы хранятся в виде «Group\Subgroup\Subsubgroup\etc», насколько мне известно такой способ используется только Мирандой и tkabber`ом, в агенте правильного отображения вложенных групп мы не обнаружили
  • Агент зачем то запрашивает с сервера букмарки, хотя они в интерфейсе не реализованы
  • Запрос mir_4 (seq_14) — диско сервера — у нас при входе делается для проверки есть ли на сервере PEP, чтобы показать меню выбора Mood & Activity. В агенте нет ни того, ни другого.
  • Непонятно, зачем вообще в презенсах шлется капсовый тег, ибо капсы агент тоже не поддерживает

Вообще у нас сложилось стойкое ощущение, что разработчик не читал описание стандарта протокола, и не знает что там и зачем.

Стоит отметить что совпадает не все. Например вход на сервер производится с использованием метода авторизации PLAIN, в то время как у миранды — DIGEST-MD5

Плюс тут мне сейчас наши коллеги кинули вот такой лог:

JasFas0la (21:50:44 26/04/2008)
Jabber есть в миранде… что заранее обуславливает его благополучную интеграцию в программу.

JasFas0la (21:52:11 26/04/2008)
а про миранду я вспомнил потому… Вы не против, если в проекте используются наработки из opensource источников? т.к. в новом клиенте я уже не руками пишу… а доверяю исходникам из миранды.
­

Это один из разработчиков бывшего смапера, который, как известно, был куплен mail.ru.   

Не знаю, действительно ли разработчики использовали наш код. Я лишь привел вам факты. Исходный код клиента кстати естественно нигде не находится

официальная позиция компании Mail.ru

Кросспост моей статьи с Хабрахабра

Комментарии (2) к “Очередное покушение на наш код: Mail.Ru Agent?”

    Я не хочу сказать, что кто – то всё же использует исходники Миранды, но почему – то сначала что – то появляется у Миранды, а спустя некоторые время у других клиентов.

    >Не знаю, действительно ли разработчики использовали наш код.

    Самое интересное, что после статьи на хабре перестала эта версия работать. Симптом у всех один и тот же, после онлайн статуса абсолютно любого протокола идет тяска КЛ (nudge), а после этого аут (спец пакет?) :)
    Да и с сайта эту версию срочно убрали, затем дали новую (1.16), причем глюков и багов в ней по сравнению с прошлой значительно больше, сразу видно, что торопились :)

Комментировать:

You must be logged in to post a comment.