# HG changeset patch # User Mikael Berthe # Date 1265662840 -3600 # Node ID 184de76b5b1879ab4d970a62057ce32634019668 # Parent a5263e93c5d710be361c9b0cc4391229214509ec Refactor some code diff -r a5263e93c5d7 -r 184de76b5b18 mcabber/mcabber/xmpp_iqrequest.c --- a/mcabber/mcabber/xmpp_iqrequest.c Mon Feb 08 21:49:52 2010 +0100 +++ b/mcabber/mcabber/xmpp_iqrequest.c Mon Feb 08 22:00:40 2010 +0100 @@ -83,7 +83,7 @@ time_t dsec; suseconds_t dusec; const gchar *fjid; - gchar *bjid; + gchar *bjid, *mesg = NULL; gettimeofday(&now, NULL); dsec = now.tv_sec - timestamp->tv_sec; @@ -106,41 +106,17 @@ switch (lm_message_get_sub_type(m)) { case LM_MESSAGE_SUB_TYPE_RESULT: - { // print to buddy's buffer - gchar *mesg = g_strdup_printf("Pong: %d second%s %d ms.", - (int)dsec, - dsec > 1 ? "s" : "", - (int)(dusec/1000L)); - - scr_WriteIncomingMessage(bjid, mesg, 0, HBB_PREFIX_INFO, 0); - g_free(mesg); - } + mesg = g_strdup_printf("Pong from <%s>: %d second%s %d ms.", fjid, + (int)dsec, dsec > 1 ? "s" : "", + (int)(dusec/1000L)); break; case LM_MESSAGE_SUB_TYPE_ERROR: - { - LmMessageNode *node = lm_message_get_node(m); - const gchar *type; - const gchar *reason; - - node = lm_message_node_get_child(node, "error"); - type = lm_message_node_get_attribute(node, "type"); - if (node->children) - reason = node->children->name; - else - reason = "undefined"; - - { // print to buddy's buffer - gchar *mesg = g_strdup_printf("Ping to %s failed: %s - %s (response time %d second%s %d microseconds)", - fjid, type, reason, - (int)dsec, - dsec > 1 ? "s" : "", - (int)(dusec/1000L)); - - scr_WriteIncomingMessage(bjid, mesg, 0, HBB_PREFIX_INFO, 0); - g_free(mesg); - } - } + display_server_error(lm_message_node_get_child(m->node, "error")); + mesg = g_strdup_printf("Ping to <%s> failed. " + "Response time: %d second%s %d ms.", + fjid, (int)dsec, dsec > 1 ? "s" : "", + (int)(dusec/1000L)); break; default: @@ -149,6 +125,9 @@ break; } + if (mesg) + scr_WriteIncomingMessage(bjid, mesg, 0, HBB_PREFIX_INFO, 0); + g_free(mesg); g_free(bjid); return LM_HANDLER_RESULT_REMOVE_MESSAGE; }