Cześć,

chcę zaimplementować obsługę proxy dla gadu-gadu w Pidginie. Problem w tym, że:
- ustawienia proxy w libgadu są globalne dla wszystkich połączeń
- libgadu nie obsługuje (przynajmniej wg. dokumentacji) wszystkich
rodzajów proxy, które obsługuje Pidgin

Najlepiej by było, jakby libgadu udostępniało możliwość rejestracji
własnej funkcji nawiązującej połączenia, tak jak to jest zrobione z
zapytaniami DNS (gg_global_set_custom_resolver). Można by to było
łatwo zrobić, modyfikując funkcję gg_connect (dlaczego właściwie to
jest deprecated?), ale ona nie otrzymuje informacji o sesji, w ramach
której ma zostać użyta.

Prosiłbym o podpowiedź, co mogę zrobić w tym kierunku. Chętnie
zaimplementuję obsługę wspomnianych ficzerów, moja propozycja:
- nowa funkcja gg_connect2 lub gg_connect_proxy, nawiązująca
połączenie TCP (niezależnie, czy przez proxy czy nie, po prostu
nawiązuje) z takimi samymi parametrami co gg_connect + wskaźnik na
strukturę sesji
- przeniesienie gg_connect do obsolete, implementacja poprzez
wywołanie gg_connect_proxy z parametrem struktury sesji równym NULL
- poprawienie wszystkich miejsc, w których jest używane gg_connect
tak, żeby przekazywały też strukturę sesji

Rozwiązało by to chyba też problem opisany w dokumentacji, że serwer
pośredniczący nie jest wykorzystywany dla połączeń bezpośrednich.

A może jest inne, prostsze rozwiązanie?

Pozdrawiam,
Tomek
_______________________________________________
libgadu-devel mailing list
libgadu-devel@lists.ziew.org
http://lists.ziew.org/mailman/listinfo/libgadu-devel

Reply via email to