Witam Osobiście używam Debiana, jednak po znajomości otrzymałem trochę miejsca na serwerze na którym jest zainstalowany PLD x86_64. Właśnie tego serwera dotyczy mój problem.
Opis problemu w wersji skróconej: próba wysłania wiadomości przy pomocy sendxmpp korzystając z konta na serwerze uaznia.net lub jabster.pl (prawdopodobnie również innych) kończy się niepowodzeniem. Próba wysłania wiadomości z konta na serwerze chrome.pl przechodzi bez problemów. Na Debianie testowym próba wysłania wiadomości z dowolnego z tych kont kończy się powodzeniem. Dlaczego na PLD nie działa i co zrobić żeby działało? Opis problemu w wersji rozbudowanej: Na wspomnianym serwerze mam skrypt w perl-u, który ma za zadanie połączyć się z kontem jabberowym, pobrać roster, znaleźć kontakty z transportu GG i na ich podstawie utworzyć listę kontaktów dla GG. Skrypt można znaleźć pod adresem: https://minio.komunikatory.pl/jab2gg/jab2gg.pl Niestety, skrypt nie potrafi połączyć się z niektórymi serwerami Jabbera (sprawdzałem uaznia.net i jabster.pl). Pojawia się błąd "not-authorized". Zgodnie ze specyfikacją XMPP (RFC 3920) błąd ten powinien pojawić się, gdy klient zacznie wysyłać strumień XML przed zakończeniem negocjacji SASL. Powiedziałbym że to błąd w skrypcie, gdyby nie to że: - skrypt potrafi połączyć się np. z serwerem chrome.pl - skrypt doskonale działa na moim Debianie (łączy się z uaznia.net albo jabster.pl) W skrypcie używam pakietu Net::XMPP. Logi produkowane przez ten moduł: - na serwerze (PLD): http://wklej.fluxboxpl.org/18605 - u mnie (Debian testing): http://wklej.fluxboxpl.org/18606 Na PLD procedura SASL rozpoczyna się od 105 linii. Klient chce wysłać sumę kontrolną MD5, jednak sprawdzenie to się nie powodzi i serwer zrywa połączenie. Na Debianie procedura SASL rozpoczyna się od 107 linii. Klient wysyła hasło w czystym tekście i udaje mu się uwierzytelnić. Rozumiem więc na czym ten błąd (?) polega, jednak nie rozumiem skąd się wziął, przez co nie potrafię sobie z nim poradzić. Wygląda to tak, jakby na Debianie "po prostu" działało a na PLD "po prostu" nie działało. Na PLD są zainstalowane następujące pakiety związane z perl-em: perl-Authen-SASL-2.13-1.noarch perl-base-5.12.2-1.x86_64 perl-Date-Manip-6.14-1.noarch perl-Digest-HMAC-1.01-12.noarch perl-Digest-SHA1-2.12-2.x86_64 [email protected]_64 perl-Encode-2.39-2.x86_64 perl-GSSAPI-0.28-2.x86_64 perl-HTML-Parser-3.68-1.x86_64 perl-HTML-Tagset-3.20-1.noarch perl-IO-Socket-SSL-1.31-1.noarch perl-libs-5.12.2-1.x86_64 perl-libwww-5.837-1.noarch perl-Mail-IMAPClient-3.21-1.noarch perl-modules-5.12.2-1.x86_64 perl-Net-SSLeay-1.36-2.x86_64 perl-Net-XMPP-1.02-1.noarch perl-Parse-RecDescent-1.965001-1.noarch perl-Term-ReadKey-2.30-6.x86_64 perl-URI-1.56-1.noarch perl-WWW-Curl-4.13-2.x86_64 perl-XML-Parser-2.36-6.x86_64 perl-XML-Simple-2.18-2.noarch perl-XML-Stream-1.22-3.noarch perl-YAML-Syck-1.07-2.x86_64 U mnie na Debianie są zainstalowane następujące pakiety (wliczając tylko te wymagane do połączenia z serwerem XMPP): perl - 5.10.1-17 libnet-xmpp-perl - 1.02-1 libxml-stream-perl - 1.23-1 libdigest-sha1-perl - 2.13-1 libauthen-sasl-perl - 2.1500-1 libio-socket-ssl-perl - 1.38-1 libnet-ssleay-perl - 1.36-1 Jak widać, wersje pakietów się różnią (generalnie w PLD są starsze wersje). Niestety najwyraźniej nie ma to wpływu, ponieważ w akcie desperacji zainstalowałem u siebie na Debianie powyższe pakiety w dokładnie takich samych wersjach jak są na PLD - nic to nie pomogło, ponieważ na Debianie nadal błąd nie chciał wystąpić. Mogłoby być tak, że na wersje w Debianie zostały nałożone jakieś łatki które powodują, że skrypt działa. Mogłoby, ale jeśli już na powyższe pakiety są nałożone jakieś łatki, to wprowadzają znikome zmiany - w Authen::SASL poprawione są literówki w dokumentacji, w XML::Stream dodany jeden warunek (nic nie zmienia w mojej kwestii - zainstalowałem wersję sprzed naniesienia tej poprawki i skrypt u mnie nadal działa). Szczerze mówiąc, czuję że wyczerpałem swoje możliwości zidentyfikowania źródła tego błędu i poradzenia sobie z nim. Nie wiem dlaczego na PLD ten skrypt nie chce działać a na Debianie działa. Aby uzyskać ten błąd u siebie, należy: - pobrać źródła skryptu: http://minio.komunikatory.pl/jab2gg/jab2gg-1.1.tar.gz - rozpakować i uruchomić program: ./jab2gg-cli.pl -c username:haslo@serwer Alternatywnie można zainstalować pakiet sendxmpp i skorzystać z niego (mój skrypt i sendxmpp korzystają z modułu Net::XMPP). Błąd na pewno występuje przy próbie połączenia z serwerami uaznia.net oraz jabster.pl. Nie występuje przy próbie połączenia z serwerem chrome.pl. Żadnych innych nie testowałem. Mam nadzieję że może któryś z czytelników tej listy będzie w stanie pomóc mi w zidentyfikowaniu źródła problemu i nakieruje mnie na sposób jego usunięcia. Pozdrawiam Mirosław Zalewski _______________________________________________ pld-users-pl mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-users-pl
