Nowa wersją łatki w załączniku.
Index: include/libgadu.h.in
===
--- include/libgadu.h.in (wersja 1087)
+++ include/libgadu.h.in (kopia robocza)
@@ -695,6 +695,8 @@
GG_EVENT_USER_DATA, /**< Informacja o kontaktach */
GG_EVENT_MULTILOGON_MSG, /**< Wiadomość wysłana z innej sesji multilogowania */
GG_EVENT_MULTILOGON_INFO, /**< Informacja o innych sesjach multilogowania */
+
+ GG_EVENT_USERLIST100_VERSION, /**< Otrzymano numer wersji listy kontaktów na serwerze */
};
#define GG_EVENT_SEARCH50_REPLY GG_EVENT_PUBDIR50_SEARCH_REPLY
@@ -985,6 +987,13 @@
};
/**
+ * Opis zdarzenia \c GG_EVENT_USERLIST100_VERSION.
+ */
+struct gg_event_userlist100_version {
+ int version; /**< numer wersji listy kontaktów na serwerze */
+};
+
+/**
* Unia wszystkich zdarzeń zwracanych przez funkcje \c gg_watch_fd(),
* \c gg_dcc_watch_fd() i \c gg_dcc7_watch_fd().
*
@@ -1018,6 +1027,7 @@
struct gg_event_user_data user_data; /**< Informacje o kontaktach */
struct gg_event_msg multilogon_msg; /**< Inna sesja wysłała wiadomość (\c GG_EVENT_MULTILOGON_MSG) */
struct gg_event_multilogon_info multilogon_info; /**< Informacja o innych sesjach multilogowania (\c GG_EVENT_MULTILOGON_INFO) */
+ struct gg_event_userlist100_version userlist100_version; /**< Informacja o numerze wersji listy kontaktów na serwerze (\c GG_EVENT_USERLIST100_VERSION) */
};
/**
Index: include/protocol.h
===
--- include/protocol.h (wersja 1087)
+++ include/protocol.h (kopia robocza)
@@ -293,6 +293,12 @@
#define GG_TIMEOUT_DISCONNECT 5 /**< Maksymalny czas oczekiwania na rozłączenie */
+#define GG_USERLIST100_VERSION 0x5c
+
+struct gg_userlist100_version {
+ uint32_t version;
+} GG_PACKED;
+
#ifdef _WIN32
#pragma pack(pop)
#endif
Index: src/handlers.c
===
--- src/handlers.c (wersja 1087)
+++ src/handlers.c (kopia robocza)
@@ -1695,6 +1695,23 @@
}
/**
+ * \internal Obsługuje pakiet GG_USERLIST100_VERSION.
+ *
+ * Patrz gg_packet_handler_t
+ */
+static int gg_session_handle_userlist_100_version(struct gg_session *gs, uint32_t type, const char *ptr, size_t len, struct gg_event *ge)
+{
+ struct gg_userlist100_version *version = (struct gg_userlist100_version*) ptr;
+
+ gg_debug_session(gs, GG_DEBUG_MISC, "// gg_watch_fd_connected() received userlist 100 version\n");
+
+ ge->type = GG_EVENT_USERLIST100_VERSION;
+ ge->event.userlist100_version.version = gg_fix32(version->version);
+
+ return 0;
+}
+
+/**
* \internal Tablica obsługiwanych pakietów
*/
static const gg_packet_handler_t handlers[] =
@@ -1734,6 +1751,7 @@
{ GG_MULTILOGON_INFO, GG_STATE_CONNECTED, sizeof(struct gg_multilogon_info), gg_session_handle_multilogon_info },
{ GG_XML_ACTION, GG_STATE_CONNECTED, 0, gg_session_handle_xml_event },
{ GG_RECV_OWN_MSG, GG_STATE_CONNECTED, sizeof(struct gg_recv_msg80), gg_session_handle_recv_msg_80 },
+ { GG_USERLIST100_VERSION, GG_STATE_CONNECTED, sizeof(struct gg_userlist100_version), gg_session_handle_userlist_100_version },
};
/**
Index: src/debug.c
===
--- src/debug.c (wersja 1087)
+++ src/debug.c (kopia robocza)
@@ -328,6 +328,7 @@
GG_DEBUG_EVENT(GG_EVENT_USER_DATA)
GG_DEBUG_EVENT(GG_EVENT_MULTILOGON_MSG)
GG_DEBUG_EVENT(GG_EVENT_MULTILOGON_INFO)
+ GG_DEBUG_EVENT(GG_EVENT_USERLIST100_VERSION)
#undef GG_DEBUG_EVENT
// Celowo nie ma default, żeby kompilator wyłapał brakujące stany
___
libgadu-devel mailing list
libgadu-devel@lists.ziew.org
http://lists.ziew.org/mailman/listinfo/libgadu-devel