Jajcus / jggtrans

Jabber to GaduGadu gateway ('transport')
http://jggtrans.jajcus.net/
GNU General Public License v2.0
14 stars 7 forks source link

zrywanie połączeń z serwerem GG #30

Closed civic9 closed 10 years ago

civic9 commented 10 years ago

Cześć,

Od kilku dni przestał mi działać transport, działalo kilka lat, nic nie zmieniałem i teraz w ogóle nie chce. Używałem co prawda starszej wersji - 2.2.4+libgadu 1.9.0, ale przekompilowałem teraz libgadu 1.11.2 + jggtrans aktualny kod z gita i bez zmian. Pod tcpdumpem widzę, że się łączy do serwera, wymana kilku pakietów i koniec połączenia.

Log z -d 10 -D 10:

2013-10-10 10:43:47 Debug: Zmiana statusu gg na 32770 * gg_change_status(0x1e91590, 32770); * gg_send_packet(0x1e91590, 0x38, ...); 2013-10-10 10:43:47 Debug: gg_notify_ex(0x1e91590,0x1e916f0,0x1e9a600,45) * gg_notify_ex(0x1e91590, 0x1e916f0, 0x1e9a600, 45); * gg_send_packet(0x1e91590, 0x10, ...); 2013-10-10 10:43:47 Debug: OUT: * gg_event_free(0x1e9a750); 2013-10-10 10:43:47 Debug: io handler kończy... 2013-10-10 10:43:47 Debug: Sprawdzanie warunków błedów... 2013-10-10 10:43:47 Debug: obserwowanie fd (gg_debug_level=10)... * gg_watch_fd(0x1e91590); \ gg_recv_packet(0x1e91590); 2013-10-10 10:43:47 Uwaga: Connection broken. Session of user@jabber......pl/Pandion ,[GGnumber: ....]

Jakieś pomysły? U mnie się coś popsuło, czy GG zaczęło coś wykrywać i blokować? Może przynajmniej ktoś da znać, że u niego nadal działa to będę wiedział, żeby kombinować u siebie (choć na razie pomysłów mi brak).

Dzięki.

mky commented 10 years ago

Potwierdzam, że mam to samo. Ze swojej strony, zaktualizowałem najpierw paczki. Konfiguracja mojego systemu jest następująca:

OS: FreeBSD 8.3-RELEASE-p11 Pakiety:

jggtrans jest skonfigurowany by brał listę serwerów z hub-a (bez SSL) + lista serwerów ze strony http://www.kadu.im/monitor/

Mimo aktualizacji, problem nie ustąpił. Połączenie są po chwili zrywane.

Z ciekawości sprawdziłem czy z tego samego IP da się podłączyć do serwerów GG innym programem. Do testów wziąłem ekg, skompilowane z tą samą biblioteką libgadu i udało się połączyć (odpaliłem dwie sesje na raz i pracowały). U mnie problem pojawił się w nocy z wtorku na środę (8/9.10.2013).

Załączam wklejkę z pracy jggtrans z debug 5:

http://pastebin.com/raw.php?i=56xNWRLM

ghost commented 10 years ago

Niestety mam to samo ;/ Kombinowałem z najnowszym libgadu itd. Nic to nie dało. Wydaje mi się, ze po stronie gadu-gadu nastąpiły jakieś zmiany. Problem wystąpił u mnie również w środę.

ghost commented 10 years ago

jggtrans zaczął działać .

mky commented 10 years ago

Nie potwierdzam. U mnie nadal nie działa.

civic9 commented 10 years ago

u mnie też nie działa :(

Jajcus commented 10 years ago

Niestety, u mnie też nie działa i aktualnie nie bardzo mam możliwość się w to wgryźć. Jeśli EKG działa, a jggtrans z tym samym libgadu nie, to jest to do poprawienia – trzeba by porównać opcje połączeń jakich używa EKG i jakich używa libgadu. A może zmieniło się coś ostatnio w libgadu i EKG zostało odpowiednio uaktualnione, a JGGTrans nie?

Nie sądzę żeby GG zaczęło coś „wykrywać” i specjalnie blokować – teraz użytkowników Jabbera i transportu jest tak niewiele, że nie sądzę, żeby ktokolwiek się tym przejmował.

ghost commented 10 years ago

Obecnie mam wersje Jabber GaduGadu Transport 2.2.4+xk1 - modyfikacja xio Kompilowane z libgadu 1.9.0-rc3 . Po odpaleniu takiej kombinacji zaczęło mi działać, chociaż nie od razu.

Jajcus commented 10 years ago

@bajtek skąd masz tą 'modyfikację xio'?

ghost commented 10 years ago

z https://github.com/jabberd2/transports to są modyfikacje smokku.

Jajcus commented 10 years ago

Hmmm… teraz widzę, że jeden użytkownik mojego serwera łączy się z GG poprawnie, reszta traci połączenie zaraz po zalogowaniu… ciekawe czemu tak…

ghost commented 10 years ago

Ja muszę wykonać serię logowań, aż "zaskoczy" . Jednak łączy z różnymi adresami IP.

Jajcus commented 10 years ago

Udało mi się stwierdzić, że problem jest związany z operacjami na liście kontaktów GG. Wyłączyłem wszystkie wywołania gg_*notify_ex() i się nie rozłącza… ale to jeszcze nie rozwiązanie…

Jajcus commented 10 years ago

Chyba naprawione. Jak potwierdzicie, to wydam nową wersję.

Sorry, że wcześniej nie byłem w stanie się za to porządnie zabrać.

mky commented 10 years ago

Przekompilowałem i zaczął się łączyć. Jak na razie podłączyłem dwie sesje po transporcie które działają. Na więcej userów będę musiał poczekać, ale wydaje mi się problem usunięty :)

ghost commented 10 years ago

Wielkie dzięki. Po przekompilowaniu łączy jak należy ;) Dlaczego ten problem wystąpił akurat teraz ?

Jajcus commented 10 years ago

Coś zmienili na serwerach i serwery zaczęły rozłączać sesję jak dostały niezrozumiałą wartość 'notify_type' w danych kontaktu. Że oficjalnej dokumentacji do tego nigdzie nie było, to ja nie wiedziałem jak interpretować te wartości (potraktowałem jako pola bitowe) i wysłałem co innego niż to czego serwery się spodziewały.

Możliwe, że jakieś spamerskie oprogramowanie wysyłało podobne nieprawidłowe wartości i dlatego postanowili to rozłączać, albo wyszło to przy okazji jakichś innych zmian w protokole (może są jakieś nowe prawidłowe wartości wykorzystywane przez nowe oryginalne klienty).

civic9 commented 10 years ago

U mnie też działa, dzięki.

mky commented 10 years ago

Od wczoraj się u mnie kilka sesji zapięło, logi nie pokazują problemów. Jak dla mnie działa bez problemów. Dzięki!