Dnia 2011-04-11, pon o godzinie 22:21 +0200, Rafał Malinowski pisze:
> Które z poniższych zmiennych są wykorzystywane przy połączeniach dcc7:
> 
> gg_dcc_ip (to chyba na pewno, bez ustawienia tego na 0xffffffff
> przesyłanie w kadu nie działa w ogóle)
> gg_dcc_port (to chyba nie)
> gg_local_ip (to nie wiem nawet po co jest..)
> gg_login_params.external_addr
> gg_login_params.external_port
> 
> W dokumentacji do dcc6 jest napisane że gg_dcc_ip i gg_dcc_port są
> wykorzystywane, w dokumentacji dcc7 nie ma nic na ten temat. Może źle
> szukam?

Dobrze szukasz, po prostu dokumentacja jest kiepska. To gg_dcc_ip nie ma
już w ogóle sensu, więc wrzuciłem przed chwilą poprawkę, która to
porządkuje. Cytując opis commita: Będziemy nasłuchiwać na .client_addr
i .client_port. Jeśli będą puste, to słuchamy na wszystkich interfejsach
i losowym porcie. Na zewnątrz będziemy wysyłać .external_addr
i .external_port, jeśli zostały ustawione. Jeśli nie, to wysyłamy adres,
z którego łączymy się z serwerem i port, na którym nasłuchujemy.
gg_dcc_ip przestaje mieć znaczenie, bo domyślnie wszystko powinno
zadziałać automatycznie.

A ze względu na losowość portu, ustawienie .client_port na konkretną
wartość, póki co, może spowodować więcej szkód niż pożytku. Kolejnemu
połączeniu nie uda się już nasłuchiwać na tym samym porcie. Trzeba
będzie dopisać jakiś mechanizm, który pozwoli stworzyć gniazdo raz i
wykorzystać je do wszystkich połączeń. Dzięki temu ludzie za NAT-ami nad
którymi mają kontrolę będą mogli bez problemu przesyłać pliki bez
pośrednictwa serwera.

Pozdr,
Wojtek

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

Reply via email to