Witam.

Udało mi się wczoraj z pewnym trudem odpalić przesyłanie plików pod
Kadu. Problem był w tym, że w przypadku wywołania metody
gg_dcc7_send_file otrzymujemy strukturę gg_dcc7 z deskryptorem -1,
który jest zmieniany na prawidłowy dopiero po pewnym czasie (jak już
libgadu się zoreintuje, że druga strona chce ten plik odebrać).
Niestety Kadu nie jest informowane o tym, w którym momencie ten
deskryptor jest ustawiany (a jak jest informowane, to ja nie wiem
gdzie :( ).

W przypadku testowego klienta w test/manual/dcc7 nie ma tego problemu,
bo ten klient robi selecta po wszystkich deskryptorach jakie zna w
jednej wspólnej pętli zdarzeń i moment ustawienia dcc7->fd nie jest
dla niego taki ważny. Po dodaniu emulacji tego zachowania dla Kadu
(socketEvent() na głównym deskryptorze wywołuje ręcznie socketEvent()
na wszystkich połączeniach bezpośrednich jakie mamy, co skutkuje
wywołaniem gg_dcc7_watch_fd) wysyłanie i odbieranie plików działa,
jednak nie jest to rozwiązanie, jakie chciałbym zostawić w kodzie.

Dlatego byłbym wdzieczny za jakiś event na głównym sockecie libgadu
informujący o tym, że fd dla tej-a-tej struktury dcc7 został ustawiony
na inny niż -1.

Pozdrawiam
  Rafał Malinowski
_______________________________________________
libgadu-devel mailing list
[email protected]
http://lists.ziew.org/mailman/listinfo/libgadu-devel

Reply via email to