changeset 1707:184de76b5b18

Refactor some code
author Mikael Berthe <mikael@lilotux.net>
date Mon, 08 Feb 2010 22:00:40 +0100
parents a5263e93c5d7
children de75b9774f86
files mcabber/mcabber/xmpp_iqrequest.c
diffstat 1 files changed, 12 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- 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;
 }