summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Villase?or <masca@cpw.pidgin.im>2010-06-30 20:41:58 +0000
committerJorge Villase?or <masca@cpw.pidgin.im>2010-06-30 20:41:58 +0000
commita0bf42c2a32b2bbdb51861ad4d07043cc9d84683 (patch)
tree91855eecfb07600fb41e0630554185a479822365
parent296c949110b6094647b4acb17e049c185113ca01 (diff)
downloadpidgin-a0bf42c2a32b2bbdb51861ad4d07043cc9d84683.tar.gz
Add a function that will help debug of SlpMessages.
-rw-r--r--libpurple/protocols/msn/slpmsg.c32
-rw-r--r--libpurple/protocols/msn/slpmsg.h2
2 files changed, 34 insertions, 0 deletions
diff --git a/libpurple/protocols/msn/slpmsg.c b/libpurple/protocols/msn/slpmsg.c
index 0e427c12d6..61218d880c 100644
--- a/libpurple/protocols/msn/slpmsg.c
+++ b/libpurple/protocols/msn/slpmsg.c
@@ -327,3 +327,35 @@ char *msn_slpmsg_serialize(MsnSlpMessage *slpmsg, size_t *ret_size)
return base;
}
+
+void msn_slpmsg_show_readable(MsnSlpMessage *slpmsg)
+{
+ GString *str;
+
+ str = g_string_new(NULL);
+
+ g_string_append_printf(str, "Session ID: %u\r\n", slpmsg->header->session_id);
+ g_string_append_printf(str, "ID: %u\r\n", slpmsg->header->id);
+ g_string_append_printf(str, "Offset: %" G_GUINT64_FORMAT "\r\n", slpmsg->header->offset);
+ g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", slpmsg->header->total_size);
+ g_string_append_printf(str, "Length: %u\r\n", slpmsg->header->length);
+ g_string_append_printf(str, "Flags: 0x%x\r\n", slpmsg->header->flags);
+ g_string_append_printf(str, "ACK ID: %u\r\n", slpmsg->header->ack_id);
+ g_string_append_printf(str, "SUB ID: %u\r\n", slpmsg->header->ack_sub_id);
+ g_string_append_printf(str, "ACK Size: %" G_GUINT64_FORMAT "\r\n", slpmsg->header->ack_size);
+
+ if (purple_debug_is_verbose() && slpmsg->buffer != NULL) {
+ g_string_append_len(str, slpmsg->buffer, slpmsg->size);
+
+ if (slpmsg->buffer[slpmsg->size - 1] == '\0') {
+ str->len--;
+ g_string_append(str, " 0x00");
+ }
+ g_string_append(str, "\r\n");
+
+ }
+
+ g_string_append_printf(str, "Footer: %u\r\n", slpmsg->footer->value);
+
+ purple_debug_info("msn", "SlpMessage %s:\n{%s}\n", slpmsg->info, str->str);
+}
diff --git a/libpurple/protocols/msn/slpmsg.h b/libpurple/protocols/msn/slpmsg.h
index 785235efbb..b828e78ae9 100644
--- a/libpurple/protocols/msn/slpmsg.h
+++ b/libpurple/protocols/msn/slpmsg.h
@@ -172,4 +172,6 @@ MsnSlpMessage *msn_slpmsg_file_new(MsnSlpCall *slpcall, size_t size);
*/
char *msn_slpmsg_serialize(MsnSlpMessage *slpmsg, size_t *ret_size);
+void msn_slpmsg_show_readable(MsnSlpMessage *slpmsg);
+
#endif /* _MSN_SLPMSG_H_ */