From tdjastrzebski at yahoo.com Mon Sep 1 15:52:07 2008 From: tdjastrzebski at yahoo.com (Tomasz Jastrzebski) Date: Mon, 1 Sep 2008 06:52:07 -0700 (PDT) Subject: [libgadu-devel] problem z pobieraniem listy kontaktow Message-ID: <648710.64595.qm@web52102.mail.re2.yahoo.com> Witam, Przede wszystkim dziekuje wszystkim za swietna dokumentacje protokolu. Jakis czas temu dla zabawy zaczalem na podstawie tej dokumentacji pisac klienta gg w C# z zalozeniem ze bedzie dzialac pod Mono a wiec na Mac-u i Linuxach r?wniez - kod pierwszej przyzwoicie dzialalacej wersji bedzie dostepny publicznie. Pierwsza wersja alfa chodzi ale mam problem. Lista kontakt?w pobiera sie prawidlowo tylko sporadycznie. Nie wiem w czym problem a moje doswiadczenia z "soketami" tcpip i .Net sa jeszcze ograniczone. Stad pytanie: jak najefektywniej sledzic/debugowac komunikacje z serwerem na poziomie pakiet?w ip? Tomasz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.ziew.org/pipermail/libgadu-devel/attachments/20080901/ce88db00/attachment.html From piotr.latosinski at gmail.com Mon Sep 1 16:19:12 2008 From: piotr.latosinski at gmail.com (=?UTF-8?Q?Piotr_Latosi=C5=84ski?=) Date: Mon, 1 Sep 2008 16:19:12 +0200 Subject: [libgadu-devel] problem z pobieraniem listy kontaktow In-Reply-To: <648710.64595.qm@web52102.mail.re2.yahoo.com> References: <648710.64595.qm@web52102.mail.re2.yahoo.com> Message-ID: <2a9cadb40809010719jc481f01w86c0d9cc2d65f8e5@mail.gmail.com> 2008/9/1 Tomasz Jastrzebski : > Witam, > Przede wszystkim dziekuje wszystkim za swietna dokumentacje protokolu. > Jakis czas temu dla zabawy zaczalem na podstawie tej dokumentacji pisac > klienta gg w C# z zalozeniem ze bedzie dzialac pod Mono a wiec na Mac-u i > Linuxach r?wniez - kod pierwszej przyzwoicie dzialalacej wersji bedzie > dostepny publicznie. > Pierwsza wersja alfa chodzi ale mam problem. Lista kontakt?w pobiera sie > prawidlowo tylko sporadycznie. Nie wiem w czym problem a moje doswiadczenia > z "soketami" tcpip i .Net sa jeszcze ograniczone. Stad pytanie: jak > najefektywniej sledzic/debugowac komunikacje z serwerem na poziomie pakiet?w > ip? > Tomasz > > _______________________________________________ > libgadu-devel mailing list > libgadu-devel at lists.ziew.org > http://lists.ziew.org/mailman/listinfo/libgadu-devel > > Witam Tez mia?em z tym prolem. Ca?a magia dzia?ania klienta le?y w wys?aniu jednego pakietu. Chodzi o to, ?e niekt?re z serwer?w GG po po??czeniu oczekuj? na informacje o Twojej li?cie kontakt?w. Najpro?ciej jest wys?a? GG_LIST_EMPTY. Oczywi?cie GG_ADD_NOTIFY te? powinno dzia?a?. A czym debugowa?? Ja korzystam z Wireshark (okienkowy Win, LInux) i nast (konsola, Linux). -- Pozdrawiam Piotr From tsalacinski at gmail.com Mon Sep 1 19:10:42 2008 From: tsalacinski at gmail.com (Tomasz Salacinski) Date: Mon, 01 Sep 2008 19:10:42 +0200 Subject: [libgadu-devel] Problem z logowaniem na serwer Message-ID: <1220289042.3213.7.camel@TommyPC> Witam, W?a?nie tworz? bindingi Pythona do libgadu, jednak problemem jest logowanie. W trybie asynchronicznym nie mo?e rozwi?za? nazwy (gg_state zostaje na 1, czyli RESOLVING). W trybie synchronicznym wszystko dzia?a jak powinno. Co ciekawe, to po prostu zacz??o si? dzia?, bez modyfikacji funkcji logowania. TCPDUMP pokazuje jasno, ?e libgadu nie mo?e rozwi?za? appmsg.gadu-gadu.pl. Mog? to obej?? pisz?c w?asn? funkcj? w Pythonie, kt?ra rozwi?zywa?aby t? nazw? i pobiera?a adres serwera i port (to nie jest problem), lecz chcia?bym to jako? rozwi?za? u?ywaj?c tylko libgadu. Je?li to jest potrzebne, to mog? przes?a? linka do tego, co robi?. Pozdrawiam, Tomasz Sa?aci?ski -- Tomasz Salacinski From wojtekka at toxygen.net Mon Sep 1 20:32:15 2008 From: wojtekka at toxygen.net (Wojtek Kaniewski) Date: Mon, 01 Sep 2008 20:32:15 +0200 Subject: [libgadu-devel] Problem z logowaniem na serwer In-Reply-To: <1220289042.3213.7.camel@TommyPC> References: <1220289042.3213.7.camel@TommyPC> Message-ID: <48BC352F.50901@toxygen.net> Tomasz Salacinski pisze: > Mog? to obej?? pisz?c w?asn? funkcj? w Pythonie, kt?ra rozwi?zywa?aby t? > nazw? i pobiera?a adres serwera i port (to nie jest problem), lecz > chcia?bym to jako? rozwi?za? u?ywaj?c tylko libgadu. G?owy nie dam, ale to chyba jedyne wyj?cie. ZTCW Python implementuje w?tki po swojemu w maszynie wirtualnej, a asynchroniczna implementacja resolvera z libgadu korzysta albo z fork() albo z pthreads. Niezbyt to pasuje do siebie. w. From szalik at szalik.net Tue Sep 2 01:35:46 2008 From: szalik at szalik.net (Piotr Domagalski) Date: Tue, 2 Sep 2008 01:35:46 +0200 Subject: [libgadu-devel] Problem z logowaniem na serwer In-Reply-To: <48BC352F.50901@toxygen.net> References: <1220289042.3213.7.camel@TommyPC> <48BC352F.50901@toxygen.net> Message-ID: <3e2ab4a90809011635y43cd9eadib2bb2cdc913afbf4@mail.gmail.com> 2008/9/1 Wojtek Kaniewski : > ZTCW Python implementuje > w?tki po swojemu w maszynie wirtualnej, a asynchroniczna implementacja > resolvera z libgadu korzysta albo z fork() albo z pthreads. Niezbyt to > pasuje do siebie. Nope -- w Pythonie wykorzystywane s? w?tki systemowe. Jedyne, co jest specyficzne/upierdliwe, to to, ?e tylko jeden w?tek mo?e wykonywa? si? w danym momencie z powodu istnienia tzw. GIL (Global Interpreter Lock). Prze??czanie nast?puj? cyklicznie co ile? instrukcji i/lub na operacjach I/O. Nie wiem jak wygl?daj? te bindingi, ale na ile sobie to mog? w tej chwili wyobrazi?, to wydaje mi si?, ?e nie powinno by? z powodu tego dodatkowego w?tku/procesu do resolvowania wi?kszych problem?w... -- Piotr Domagalski From tsalacinski at gmail.com Tue Sep 2 08:02:40 2008 From: tsalacinski at gmail.com (Tomasz Salacinski) Date: Tue, 02 Sep 2008 08:02:40 +0200 Subject: [libgadu-devel] Problem z logowaniem na serwer In-Reply-To: <3e2ab4a90809011635y43cd9eadib2bb2cdc913afbf4@mail.gmail.com> References: <1220289042.3213.7.camel@TommyPC> <48BC352F.50901@toxygen.net> <3e2ab4a90809011635y43cd9eadib2bb2cdc913afbf4@mail.gmail.com> Message-ID: <1220335360.11666.5.camel@TommyPC> Bindingi znajduj? si? pod adresem: http://dp0154.debowypark.waw.pl/pygadu.tar.bz2 Oczywi?cie nieuko?czone, du?o takich brzydkich rzeczy tam jeszcze jest. Trzeba w pliku pygadu.c zmieni? parametry.async = 0 na parametry.async = 1. Kompilacja: ./make_object potem python test.ty, lub: import gg, time gg.login(numer, haslo, status) gg.notify_empty() # pusta lista znajomych, hack while True: print gg.watch_fd() time.sleep(1) Aa, no i funkcja gg.watch_fd() powinna wygl?da? tak: static PyObject *watch_fd(PyObject *self) { if (!sesja | !session_ok) { return Py_False; } event = gg_watch_fd(sesja); switch (event->type) { case GG_EVENT_MSG: return Py_BuildValue("(ss)", "GG_EVENT_MESSAGE", event->event.msg.message); default: return Py_BuildValue("i", event->type); // Gdy nie znamy eventa, zwrocmy jego typ } } Normalnie output powinien wygl?da? tak, ?e pokazuje 0, potem 8 (GG_CONN_SUCCESS) i potem normalnie ju? mo?na gada?. U mnie jest 0, potem 7 (GG_CONN_FAILURE). @Wojtek - mi to jednak dzia?a?o przez jaki? czas, potem przesta?o. Nie wiem co si? dzieje... Pozdrawiam, Tomasz Sa?aci?ski Dnia 2008-09-02, wto o godzinie 01:35 +0200, Piotr Domagalski pisze: > 2008/9/1 Wojtek Kaniewski : > > ZTCW Python implementuje > > w?tki po swojemu w maszynie wirtualnej, a asynchroniczna implementacja > > resolvera z libgadu korzysta albo z fork() albo z pthreads. Niezbyt to > > pasuje do siebie. > > Nope -- w Pythonie wykorzystywane s? w?tki systemowe. Jedyne, co jest > specyficzne/upierdliwe, to to, ?e tylko jeden w?tek mo?e wykonywa? si? > w danym momencie z powodu istnienia tzw. GIL (Global Interpreter > Lock). Prze??czanie nast?puj? cyklicznie co ile? instrukcji i/lub na > operacjach I/O. > > Nie wiem jak wygl?daj? te bindingi, ale na ile sobie to mog? w tej > chwili wyobrazi?, to wydaje mi si?, ?e nie powinno by? z powodu tego > dodatkowego w?tku/procesu do resolvowania wi?kszych problem?w... From szalik at szalik.net Tue Sep 2 08:55:58 2008 From: szalik at szalik.net (Piotr Domagalski) Date: Tue, 2 Sep 2008 08:55:58 +0200 Subject: [libgadu-devel] Problem z logowaniem na serwer In-Reply-To: <1220335360.11666.5.camel@TommyPC> References: <1220289042.3213.7.camel@TommyPC> <48BC352F.50901@toxygen.net> <3e2ab4a90809011635y43cd9eadib2bb2cdc913afbf4@mail.gmail.com> <1220335360.11666.5.camel@TommyPC> Message-ID: <3e2ab4a90809012355r7f838635y9f7d9d48de089e84@mail.gmail.com> 2008/9/2 Tomasz Salacinski : > Bindingi znajduj? si? pod adresem: > > http://dp0154.debowypark.waw.pl/pygadu.tar.bz2 > > Oczywi?cie nieuko?czone, du?o takich brzydkich rzeczy tam jeszcze jest. Chcia?bym, ale nie mam za bardzo czasu teraz niestety zagl?da? do kodu, ale widz? ?e robisz to r?cznie. Mo?e warto przyjrze? si? przyjemniejszym rozwi?zaniam, np. pyrex? Jest to prostsze do zaimplementowania, a widz?, ?e w pokazanym kodzie masz b??dy zwi?zane z reference counting (zwracaj?c Py_False musisz zwi?kszy? mu referencj?). P.S. Swoj? drog?, wiem ?e znajomy robi? takie bindingi jako projekt na studiach, ale nie wiem, czy jest to udost?pnione i w jakim jest stanie :) -- Piotr Domagalski From wojtekka at toxygen.net Tue Sep 2 18:09:06 2008 From: wojtekka at toxygen.net (Wojtek Kaniewski) Date: Tue, 02 Sep 2008 18:09:06 +0200 Subject: [libgadu-devel] Problem z logowaniem na serwer In-Reply-To: <3e2ab4a90809011635y43cd9eadib2bb2cdc913afbf4@mail.gmail.com> References: <1220289042.3213.7.camel@TommyPC> <48BC352F.50901@toxygen.net> <3e2ab4a90809011635y43cd9eadib2bb2cdc913afbf4@mail.gmail.com> Message-ID: <48BD6522.30704@toxygen.net> Piotr Domagalski pisze: > Nope -- w Pythonie wykorzystywane s? w?tki systemowe. (...) Mea culpa, za du?o si? o Stackless Pythonie naczyta?em ostatnio :) w. From uzyszkodnikdisc at gmail.com Tue Sep 30 19:51:45 2008 From: uzyszkodnikdisc at gmail.com (Michal Antonczak) Date: Tue, 30 Sep 2008 17:51:45 +0000 Subject: [libgadu-devel] libgadu problem z wyslaniem wiadomosci Message-ID: <571830310809301051n471eaad2y1f914ef50866579e@mail.gmail.com> mam sobie taki kodzik #include #include #include #include int main ( int argc, char *argv[] ) { struct gg_session* sesja; struct gg_login_params* para; struct gg_event *zdarzenie; para=calloc(1,sizeof(struct gg_login_params)); para->uin = 1234; para->password = "abce"; //para->async=1; para->status = GG_STATUS_BUSY; gg_debug_level=255; if(!(sesja = gg_login(para))){ puts("nie mozna sie polaczyc"); return EXIT_FAILURE; } if(!fork()) while(!sleep(60)) gg_ping(sesja); while((zdarzenie = gg_watch_fd(sesja))){ if(zdarzenie->type == GG_EVENT_ACK){ puts("dostarczono"); break; } if(zdarzenie->type == GG_EVENT_CONN_SUCCESS){ puts("polaczenie zakonczone sukcesem"); gg_notify(sesja,NULL,0); if(gg_send_message(sesja,GG_CLASS_CHAT, 12345, "riporting in")<0) puts("polaczenie siadlo"); } if(zdarzenie->type == GG_EVENT_CONN_FAILED){ puts("polaczenie siadlo"); return EXIT_FAILURE; } if(zdarzenie->type == GG_EVENT_NONE) puts("none"); if(zdarzenie->type == GG_EVENT_DISCONNECT){ puts("papa"); } gg_event_free(zdarzenie); } gg_logoff(sesja); return EXIT_SUCCESS; } /* ---------- end of function main ---------- */ ktory niestety nie chce mi nic wyslac , ani sie do mnie odezwac. Funkcje debugujace libgadu produkuja taki log: ** gg_login(0x9f64008: [uin=7305885, async=0, ...]); ** gg_connect(91.197.13.59, 80, 0); ** gg_watch_fd(0x9f64070); // gg_watch_fd() GG_STATE_CONNECTING_HUB // gg_watch_fd() connected to hub, sending query => -----BEGIN-HTTP-QUERY----- GET /appsvc/appmsg4.asp?fmnumber=7305885&version=7%2c+7%2c+0%2c+3351&fmt=2&lastmsg=0 HTTP/1.0 Host: appmsg.gadu-gadu.pl User-Agent: Mozilla/4.7 [en] (Win98; I) Pragma: no-cache => -----END-HTTP-QUERY----- ** gg_event_free(0x9f654a0); ** gg_watch_fd(0x9f64070); // gg_watch_fd() GG_STATE_READING_DATA // gg_watch_fd() received http header (HTTP/1.0 200 OK) // gg_read_line() eof reached // gg_watch_fd() received http data (10410 0 91.197.13.37:8074 91.197.13.37) ** gg_connect(91.197.13.37, 8074, 0); ** gg_event_free(0x9f654a0); ** gg_watch_fd(0x9f64070); // gg_watch_fd() GG_STATE_CONNECTING_GG // gg_watch_fd() connected ** gg_event_free(0x9f654a0); ** gg_watch_fd(0x9f64070); // gg_watch_fd() GG_STATE_READING_KEY ** gg_recv_packet(0x9f64070); // gg_recv_packet() header recv(3,0xbfb3ba04,8) = 8 // gg_recv_packet() body recv(3,0x9f654d8,4) = 4 // gg_recv_packet(01) 01 00 00 00 04 00 00 00 c6 5b a0 ea // gg_watch_fd() challenge eaa05bc6 --> SHA1 hash: c7cad4f4e560370ba4475eac71b667e917da485f // gg_watch_fd() sending GG_LOGIN70 packet ** gg_send_packet(0x9f64070, 0x19, ...); // gg_send_packet(0x19) 19 00 00 00 5c 00 00 00 9d 7a 6f 00 02 c7 ca d4 f4 e5 60 37 0b a4 47 5e ac 71 b6 67 e9 17 da 48 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 be ** gg_event_free(0x9f654a0); ** gg_watch_fd(0x9f64070); // gg_watch_fd() GG_STATE_READING_REPLY ** gg_recv_packet(0x9f64070); // gg_recv_packet() header recv(3,0xbfb3ba04,8) = 8 // gg_recv_packet() body recv(3,0x9f64140,1) = 1 // gg_recv_packet(03) 03 00 00 00 01 00 00 00 1f // gg_watch_fd() login succeded ** gg_event_free(0x9f654a0); ** gg_watch_fd(0x9f64070); // gg_watch_fd() GG_STATE_CONNECTED ** gg_watch_fd_connected(0x9f64070, 0x9f654a0); ** gg_recv_packet(0x9f64070); Hmpf, mam nadzieje, ze ktos ma dobra szklana kule ;-) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.ziew.org/pipermail/libgadu-devel/attachments/20080930/17249d65/attachment.html From wojtekka at toxygen.net Tue Sep 30 20:19:12 2008 From: wojtekka at toxygen.net (Wojtek Kaniewski) Date: Tue, 30 Sep 2008 20:19:12 +0200 Subject: [libgadu-devel] libgadu problem z wyslaniem wiadomosci In-Reply-To: <571830310809301051n471eaad2y1f914ef50866579e@mail.gmail.com> References: <571830310809301051n471eaad2y1f914ef50866579e@mail.gmail.com> Message-ID: <48E26DA0.2040509@toxygen.net> Michal Antonczak pisze: > Funkcje debugujace libgadu produkuja taki log: > (...) Nie widz? wysy?ania pustej listy kontakt?w. Na pewno kod wchodzi do obs?ugi GG_EVENT_CONN_SUCCESS? w.