diff options
author | Jorge Villase?or <masca@cpw.pidgin.im> | 2010-06-30 20:41:58 +0000 |
---|---|---|
committer | Jorge Villase?or <masca@cpw.pidgin.im> | 2010-06-30 20:41:58 +0000 |
commit | a0bf42c2a32b2bbdb51861ad4d07043cc9d84683 (patch) | |
tree | 91855eecfb07600fb41e0630554185a479822365 | |
parent | 296c949110b6094647b4acb17e049c185113ca01 (diff) | |
download | pidgin-a0bf42c2a32b2bbdb51861ad4d07043cc9d84683.tar.gz |
Add a function that will help debug of SlpMessages.
-rw-r--r-- | libpurple/protocols/msn/slpmsg.c | 32 | ||||
-rw-r--r-- | libpurple/protocols/msn/slpmsg.h | 2 |
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_ */ |