Да я же просто охуенен! jabber.el, как выяснилось, не умеет работать с юникодными jid'ами, т.е. где не только английские буквы. На самом деле, XMPP такое очень даже допускает (видел у веобу джиды из канзей). У нас в конторе я с самого начала всем раздавал jid == фамилия_имя_отчество@domain.tld, и вот теперь жёстко соснул, когда j.el не осилил такое. Не в силах выдержать несправедливость мира, полез в код и, применяя гугл и интуицию, расковырял, в какой функции происходит фейл. На самом деле, он просто не мог закодировать в base64 мультибайтовый символ, ожидая исключительно ASCII на входе. Накопал функцию для перекодирования (аналог пистонового .encode('encoding') ), поправил, не работает! Ещё потупил, догадался удалить скомпиленные в байткод экземпляры (.elc), перезапустил, ура, заработало! Сегодня отправлю патч девелоперу.
eurekafag
11.01.2011 09:36 25887174641294741858106245
Do you really want to delete ?
ЛИСПОЕБЫ-ЛИСПОЕБЧИКИ. Ну и как лисп после рутнопа?
Сам знаешь, как. Мозг выносит, сложно, но почему-то ТЯНЕТ ОНО МЕНЯ, ТЯНЕТ! Хотя вообще слишком много магии и всё скрыто (ПОКАЗАТЬ ВСЁ ЧТО СКРЫТО!) низкоуровневую логику не пощупать, всё на каких-то абстракциях. Понятно, но не до конца, и это вызывает бугурт.
на полке
хацкиль/scheme пробовать не собирался?
>видел у веобу джиды из канзей R! А теперь еще почини гугль, он тоже не может в юникод.
Хацкиль точно нет, там сотни матана и ноль прикладной части. Нахуй. А схема, в принципе, тот же лисп (диалект), разница несущественна.
Вэйт, а что с гуглем? УМВР.
Когда я пытался зарегистрировать кана-жид, он сначала долго ругался, потом слал мне разные 403 и не давал писать никому. Но это было полгода назад, может починили уже.
А, ну это не по моей части. На жабру точно работает.
Не, сервера с поддержкой-то есть, я все-таки нашел пару, и теперь у молодых сервисов, завязанных на жаббер поначалу случаются ЮНИКОДОПРОБЛЕМЫ, когда использую.
А чё искать-то, свой подними и не парься. Но вообще публичные жиды я бы делал в ascii, вот для выебонов можно хоть на хинди запилить.
Я думал поднимать, но мне лениво. Зачем мне сервер на один жид? Хватает постфикса на 1 мейлбокс. Опять же стабильность.
BTW: — jabber-sasl.el 2011-01-11 13:25:51.984128140 +0300
+++ /home/eurekafag/build/emacs-jabber/jabber-sasl.el 2011-01-08 10:44:37.351106785 +0300
@@ -91,7 +91,7 @@
`(auth ((xmlns . "urn:ietf:params:xml:ns:xmpp-sasl")
(mechanism . ,(sasl-mechanism-name mechanism)))
,(when (sasl-step-data step)
- (base64-encode-string (encode-coding-string (sasl-step-data step) 'utf-8) t))))
+ (base64-encode-string (sasl-step-data step) t))))
(list client step passphrase))))))
(defun jabber-sasl-read-passphrase-closure (jc remember)
@@ -113,13 +113,13 @@
(lambda (p) (setq passphrase (copy-sequence p)) p))))
(cond
((eq (car xml-data) 'challenge)
- (sasl-step-set-data step (decode-coding-string (base64-decode-string (car (jabber-xml-node-children xml-data))) 'utf-8 ))
+ (sasl-step-set-data step (base64-decode-string (car (jabber-xml-node-children xml-data))))
(setq step (sasl-next-step client step))
(jabber-send-sexp
jc
`(response ((xmlns . "urn:ietf:params:xml:ns:xmpp-sasl"))
,(when (sasl-step-data step)
- (base64-encode-string (encode-coding-string (sasl-step-data step) 'utf-8) t)))))
+ (base64-encode-string (sasl-step-data step) t)))))
((eq (car xml-data) 'failure)
(message "SASL authentication failure: %s"
))))))))))))))))))))))))))))))))))))
Да, я поддержу.
Пока патчил, дважды усрался со смеху. Серьёзно.
Если бы Тема Лебедев был программистов, он бы дал по ебалу лиспоебам.
*программистом // блядская клав