Hej, On Tue, Dec 27, 2011 at 11:28:52PM +0100, Bartosz Brachaczek wrote: > Próbowałem poprawić dzisiaj błąd w Kadu na Windows polegający na tym, > że próba wysłania dużej wiadomości (u mnie to było około 400 znaków) w > dużej konferencji (10 osób) kończyła się niepowodzeniem. Co ciekawe, > podczas używania wersji Kadu z oknem terminala, na którym wypisywane > było wyjście diagnostyczne libgadu, błąd nie występował. Doszedłem w > końcu do tego, że send() w gg_write_common() podczas wysyłania szóstej > czy siódmej kopii wiadomości nie wyrabia, zwraca -1 i ustawia errno na > EAGAIN - chyba że libgadu wypisuje jeszcze coś na terminal, czym > zarabia trochę czasu. Przez to gg_send_packet() uznaje, że operacja > się nie powiodła i wiadomość faktycznie nie zostaje w całości wysłana. > Zrobienie najprostszej rzeczy, czyli obsługi EAGAIN w pętli w > gg_write_common() naprawiło problem. > > Tak sobie myślę, że gg_send_packet() powinno obsługiwać EAGAIN, > prawda? Czy też powinno to się dziać na innym poziomie?
Czasami się dziwie w jaki sposób libgadu poprawnie działa... Spróbuj z r1240, myśle że to tak powinno być. Tylko dla polaczen asynchronicznych, bo w synchronicznych nie może wystąpić EAGAIN? _______________________________________________ libgadu-devel mailing list libgadu-devel@lists.ziew.org http://lists.ziew.org/mailman/listinfo/libgadu-devel