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

Reply via email to