# HG changeset patch # User Evan Schoenberg # Date 1215186086 0 # Node ID 1b3aea14661351ffb101c98edbcc7d6f6df792d6 # Parent a2f63b74fe31ece9c8b115101b2e2efb797ea9ac Added a structured error handler callback to the xmlSAXHandler struct. This callback is used preferentially over the warning/error/fatal_error callbacks (whcih we don't implement, anyways) for 'modules which support the new error reporting mechanism'. This should help us detect parsing errors. diff -r a2f63b74fe31 -r 1b3aea146613 libpurple/protocols/jabber/parser.c --- a/libpurple/protocols/jabber/parser.c Thu Jul 03 19:53:31 2008 +0000 +++ b/libpurple/protocols/jabber/parser.c Fri Jul 04 15:41:26 2008 +0000 @@ -132,6 +132,18 @@ xmlnode_insert_data(js->current, (const char*) text, text_len); } +static void +jabber_parser_structured_error_handler(void *user_data, xmlErrorPtr error) +{ + JabberStream *js = user_data; + + purple_debug_error("jabber", "XML parser error for JabberStream %p: " + "Domain %i, code %i, level %i: %s\n", + js, + error->domain, error->code, error->level, + (error->message ? error->message : "(null)")); +} + static xmlSAXHandler jabber_parser_libxml = { NULL, /*internalSubset*/ NULL, /*isStandalone*/ @@ -164,7 +176,7 @@ NULL, /*_private*/ jabber_parser_element_start_libxml, /*startElementNs*/ jabber_parser_element_end_libxml, /*endElementNs*/ - NULL /*serror*/ + jabber_parser_structured_error_handler /*serror*/ }; void