НавигацияВход для пользователейОблачкоПоследние комментарии
|
Клиент для отправки сообщений из консолиЗадача - необходимо найти клиента для Jabber/XMPP который бы мог принимать в кач-ве параметров коммандной строки сервера,JID, пароль, адресата и сообщение и соответственно его отправлять. Забыл написать - ОС Windows
Опубликовано FreemanRU@jabber.ru в пт, 2007-07-27 15:12. categories [ ]
|
jsend из Tkabber
Вероятно, сможет помочь скрипт jsend из состава Tkabber.
Для работы ему необходим рантайм Tcl.
Вероятно, так же потребуются прямые руки и желание читать приложенный howto.txt.
Также подобную утилиту наверняка можно сработать на базе, допустим, Net::XMPP.
--
xmpp:kostix@007spb.ru
tls151.dll
При запуске скрипта пишет, что не может загрузить библиотеку tls151.dll или те, от которых она зависит. Сам TKabber работает, how-to я вроде тоже прочитал. Путь до dll-ки выводит правильно. Собственно вопрос - как это побороть?
Полная ошибка: couldn't load library "C:/Tcl/lib/tls1.5.1/tls151.dll": this library or a dependent library could not be found in library path
Если путь до
Если путь до DLL'ки написан правильно, то значит реальным диагнозом является "...or a dependent library..."; сказать точно, что сделать с этой библиотекой, я не могу. Можно попробовать поставить depends и посмотреть от каких библиотек зависит tls151.dll.
Ещё проще, видимо, закомментировать строку
package require tlsв jsend.tcl, а в список аргументов добавить "-tls false", например:set args {-from /tam -password lame -tls false}--
xmpp:kostix@007spb.ru
Вроде все
Вроде все зависимости есть, всё равно не пашет. Без TLS не могу :( Буду рыть дальше ЗЫ НЕНАВИЖУ кросплатформу.
C:\>tclsh
Добрался до WinXP SP2, на котором стоит Tcl/Tk от AS 8.4.14; инфа о системе:
C:\>tclsh % info pa 8.4.14 % package require tls 1.5.1 % package require mime 1.5.2 % package require Tclx 8.4 % package require sha1 2.0.3 % lappend auto_path $env(ProgramFiles)/Tkabber-SVN/Tkabber C:/Tcl/lib/tcl8.4 C:/Tcl/lib C:/Tcl/lib/tcllib1.9 C:/Tcl/lib/tklib0.4 {C:/Docume nts and Settings/Administrator/Teapot/repository/package/win32-ix86/lib} {C:/Doc uments and Settings/Administrator/Teapot/repository/package/tcl/lib} C:/Tcl/lib/ tclx8.4 {C:\Program Files/Tkabber-SVN/Tkabber} % package require jabberlib 0.10.0Для запуска скрипта:
— это путь (у меня) до каталога, в котором лежит jabberlib-tclxml. Строка нужна для того, чтобы пакетная система тикля нашла пакет jabberlib; альтернативное решение — скопировать jabberlib-tclxml в C:\Tcl\lib (или соответствующий каталог);
— получил сообщение.
P.S. (По поводу "кроссплатформы"): Даже если ты всю "кроссплатформу" забрызгаешь слюной презрения, это не помешает Ткабберу нормально работать как в win32, так и в *nix/X Window. Так что нечего не зеркало пенять... ©
И потом никто ж не заставляет: возьми, например, исходники Exodus'а и посиди неделю, пытаясь отковырять оттуда его jabberlib. Купи IP@Work! для дельфи за $400 и сделай свою прекрасную нифига-не-кроссплатформу — вариантов куча.
Или вот можно взять классы для PHP (ой, опять кроссплатформа). Тогда лучше что-нибудь для .NET. Хотя у них же тоже есть Mono — опять не подходит!
--
xmpp:kostix@007spb.ru
% info pa 8.4.15 % package
% info pa
8.4.15
% package require tls
couldn't load library "C:/Tcl/lib/tls1.5.1/tls151.dll": this library or a depend
ent library could not be found in library path
% package require mime
1.5.2
% package require Tclx
8.4
% package require sha1
2.0.3
% package require jabberlib
0.10.0
C:\Documents and Settings\Freeman>echo %PATH%
C:\Tcl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C....{cut}....
В Path всё присутвует. Установлен ActiveTcl 8.4.15.0.
Можно было и не писать, что у Вас скрипт запустился - tls то подгрузился.
PS Да, я люблю откомпиленные приложения, как под Win, так и под *NIX. Работает в разы быстрее, в разы меньше головнй боли при установке. Что касается "поковырять исходники" - проще взять RFC и написать свой.
tcltls
Я достаточно давно занимаюсь "техподдержкой" Ткаббера, который активно использует tcltls. В частности, эта либа входит в Tkabber-Pack для Windows — никаких жалоб не поступало на невозможность её загрузить, я подчёркиваю: никаких, ни единой. Это означает, что что-то не в порядке с твоей системой. Однако мы ничего про неё не знаем: ни то, откуда взят этот пакет tcltls, ни то, какая версия виндов используется.
Особенно это странно в свете того, что сборка tcltls, доступная на сорсфорже, линкуется с OpenSSL статически, то есть не зависит ни от чего, кроме штатных виндовских DLL'ек.
P.S.
Про "в разы быстрее" и прочее я комментировать не буду. Я считаю, что ты неправ, но мы уходим от темы. Единственное, что я должен заметить: если бы действительно было бы проще "взять RFC и написать свой", то, вероятно, завались было бы уже таких своих решений.
Да, исходники я патчить не предлагал. Мне было проще написать строчку в скрипт, чем ставить jabberlib в правильное место. Это не означает, что так должен сделать каждый.
--
xmpp:kostix@007spb.ru
решение - взять
решение - взять с Sourceforge версию 1.5.0.
http://sourceforge.net/project/showfiles.php?group_id=13248&package_id=21836
удалить каталог C:/Tcl/lib/tls1.5.1 и распаковать содержимое скачанного файла в каталог C:/Tcl/lib
По поводу 1.5.1 - если tclsh запустить в C:/Tcl/lib/tls1.5.1 , и сделать
% package require tls
то dll-ка загрузится...
Решение проблемы с TLS
Оказался баг в Tcl 8.4.15, дистрибутив которого от ActiveState, как выяснилось, начиная с этой версии включает tls.
Проблема состоит в том, что DLL'ка этого модуля динамически слинкована с файлами библиотеки OpenSSL, а загрузчик модуля содержит ошибку, которая не позволяет ему найти нужные файлы от OpenSSL.
Два решения проблемы приведены здесь.
Мейнтейнер пакета TLS в данном дистрибутиве принял патч; обновление, видимо, появится в 8.4.16.
--
xmpp:kostix@007spb.ru
Решение на перле
Вот — решение на Perl
--
xmpp:kostix@007spb.ru
сможешь
сможешь оформить "Клиент для отправки сообщений из консоли" в виде заметки для размещения на главной странице?
Разумно
Мысль верная. Только нужно подойти к вопросу обстоятельно, а это требует некоторого времени на подготовку. Кроме того, обсуждаемый скрипт вполне можно "завернуть", сделав из него самостоятельный win32-"экзешник" чтобы больше не было таких страдальцев, как автор оригинального поста.
Это тоже требует некоторого времени. В общем, как только, так — сразу.
--
xmpp:kostix@007spb.ru
С экзешником
С экзешником очень хорошая идея.