LINUX.ORG.RU

разрывается соединение к jabber

 , ,


0

2

хотел было написать простецкий jabber клиент на чистом bash (много ли надо, чтобы просто принимать и отправлять сообщения? (риторический вопрос)), - никаких проблем не возникает, даже клевый парсер xml уже готов, кроме той, что я тупо не могу подключиться к какому-нибудь серверу.

если вам не сложно, выполните команду

openssl s_client -connect "talk.google.com:5223"
и вроде бы все ок, получили сертификаты и теперь можно отправить данные (копипастните и нажмите enter)
<?xml version="1.0"?><stream:stream to="gmail.com" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">
а сервер даже ответит и будет ждать дальнейшей авторизации пользователя (еще одной командой, со своим логином и паролем, даже успеваю авторизироваться). но через несколько секунд как бы то нибыло openssl вылетает, на последок сообщив read:errno=0

такая же история с gnutls

gnutls-cli talk.google.com -p 5223
и снова отправьте строчку выше с xml, - через несколько секунд gnutls тоже вылетает.

я пробовал так же talk.google.com:5222, jabber.ru:5222 и все один фиг. они упорно не хотят держать соединение.

но например с IRC (c ssl и без него) такой проблемы нет, обе прекрасно живут и не вылетают.

в других программах jabber работает, я даже на другом языке пробовал писать подключение к жабберу - никаких проблем, соединение не разрывается. а пытаясь подключиться используя openssl или gnutls происходит такой фэйл. может здесь есть пользователи emacs'а с jabber клиентами? кажется, в них тоже используется openssl/gnutls.

есть у кого какие-нибудь мысли по этому поводу?

★★★★★

Keep-Alive попробуй слать, просто пробел например.

Kalashnikov ★★★ ()

Что с gnutls по прежнему не известно, у OpenSSL оказывается это баг - буду ждать исправлений.

Spoofing ★★★★★ ()

может здесь есть пользователи emacs'а с jabber клиентами? кажется, в них тоже используется openssl/gnutls.

Да есть, и меня этот баг уже задрал :)

vasily_pupkin ★★★★★ ()

Подозреваю, что если успеть начать сессию, то не отвалится. Еще пожно попробовать ключи -no_ticket и -no_ssl2 , но ИМХО дело в сессии.

Не уверен, обязательно ли биндить ресурс.

<iq type="set" id="9746"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
<resource>telnet</resource>
</bind>
</iq>

А вот сессия точно нужна.

<iq type="set" id="9747">
<session xmlns="urn:ietf:params:xml:ns:xmpp-session" />
</iq>

Стырено отсюда

Потестил - работает. Но надо действительно быстро копипастить :)

//swagman

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.