Cześć,
w dokumentacji jest moim zdaniem nieścisłość. Chodzi konkretnie o
strony dotyczące katalogu publicznego:
http://toxygen.net/libgadu/doc/group__pubdir50.html#g06fc87d81c62e9abb8790b6e5713c55b
http://toxygen.net/libgadu/protocol/#ch1.14
Opis GG_PUBDIR50_START sugeruje, że w tym polu powinien się znaleźć
numer gg, od którego należy rozpocząć wyszukiwanie. Tak też to było
zaimplementowane w Pidginie i być może w Kadu - w najnowszej wersji
tego programu nie ma możliwości obejrzenia "kolejnej" strony, a w
Pidginie próba przejścia dalej powodowała segfaulta (czyli kiedyś to
pewnie działało, tylko się coś zmieniło w protokole).
Jak udało mi się ustalić, ta wartość to offset, tzn. przy
GG_PUBDIR50_START = 2 wyświetlone zostaną wyniki 3-22. Tu się pojawia
pytanie: jak to się dzieje, że oryginalny klient wyświetla po 15
wyników na stronę, a libgadu zwraca 20? Może po prostu oryginalny
ucina te 5 wyników? Przy traktowaniu tej wartości jako offsetu, wyniki
zapytań są dokładnie takie same, jak w oryginalnym kliencie.
---
Druga sprawa - przy kompilacji na Windows sypie mi warningami
(podobnymi, jak w poprzednim moim mailu) - w załączniku patch.
Pozdrawiam,
Tomek
Index: src/dcc7.c
===================================================================
--- src/dcc7.c (wersja 1130)
+++ src/dcc7.c (kopia robocza)
@@ -1095,7 +1095,7 @@
case GG_STATE_CONNECTING:
{
int res = 0, error = 0;
- unsigned int error_size = sizeof(error);
+ socklen_t error_size = sizeof(error);
gg_debug_dcc(dcc, GG_DEBUG_MISC, "// gg_dcc7_watch_fd() GG_STATE_CONNECTING\n");
@@ -1385,7 +1385,7 @@
case GG_STATE_CONNECTING_RELAY:
{
int res;
- unsigned int res_size = sizeof(res);
+ socklen_t res_size = sizeof(res);
struct gg_dcc7_relay_req pkt;
gg_debug_dcc(dcc, GG_DEBUG_MISC, "// gg_dcc7_watch_fd() GG_STATE_CONNECTING_RELAY\n");
Index: src/dcc.c
===================================================================
--- src/dcc.c (wersja 1130)
+++ src/dcc.c (kopia robocza)
@@ -649,7 +649,8 @@
struct gg_dcc_small_packet small;
struct gg_dcc_big_packet big;
int size, tmp, res;
- unsigned int utmp, res_size = sizeof(res);
+ unsigned int utmp;
+ socklen_t res_size = sizeof(res);
char buf[1024], ack[] = "UDAG";
struct gg_dcc_file_info_packet {
_______________________________________________
libgadu-devel mailing list
[email protected]
http://lists.ziew.org/mailman/listinfo/libgadu-devel