Use connection_call_auth_cb in one more place
authorMyhailo Danylenko <isbear@ukrpost.net>
Tue, 20 Nov 2012 03:09:30 +0200
changeset 644 4fc5eab77197
parent 643 e7ef923056d7
child 645 b6f59df1fbaa
Use connection_call_auth_cb in one more place
loudmouth/lm-connection.c
--- a/loudmouth/lm-connection.c	Mon Nov 19 19:11:25 2012 +0200
+++ b/loudmouth/lm-connection.c	Tue Nov 20 03:09:30 2012 +0200
@@ -689,31 +689,15 @@
     return ret_val;
 }
 
-static LmHandlerResult
-connection_auth_reply (LmMessageHandler *handler,
-                       LmConnection     *connection,
-                       LmMessage        *m,
-                       gpointer          user_data)
+static void
+connection_call_auth_cb (LmConnection *connection, gboolean success)
 {
-    const gchar *type;
-    gboolean     result = TRUE;
-
-    g_return_val_if_fail (connection != NULL,
-                          LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS);
-
-
-    type = lm_message_node_get_attribute (m->node, "type");
-    if (strcmp (type, "result") == 0) {
-        result = TRUE;
+    if (success) {
         connection->state = LM_CONNECTION_STATE_AUTHENTICATED;
-    }
-    else if (strcmp (type, "error") == 0) {
-        result = FALSE;
+    } else {
         connection->state = LM_CONNECTION_STATE_OPEN;
     }
 
-    lm_verbose ("AUTH reply: %d\n", result);
-
     if (connection->auth_cb) {
         LmCallback *cb = connection->auth_cb;
 
@@ -721,12 +705,26 @@
 
         if (cb->func) {
             (* ((LmResultFunction) cb->func)) (connection,
-                                               result,
+                                               success,
                                                cb->user_data);
         }
 
         _lm_utils_free_callback (cb);
     }
+}
+
+static LmHandlerResult
+connection_auth_reply (LmMessageHandler *handler,
+                       LmConnection     *connection,
+                       LmMessage        *m,
+                       gpointer          user_data)
+{
+    LmMessageSubType type;
+    g_return_val_if_fail (connection != NULL,
+                          LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS);
+
+    type = lm_message_get_sub_type (m);
+    connection_call_auth_cb (connection, type == LM_MESSAGE_SUB_TYPE_RESULT);
 
     return LM_HANDLER_RESULT_REMOVE_MESSAGE;
 }
@@ -1000,30 +998,6 @@
     return server;
 }
 
-static void
-connection_call_auth_cb (LmConnection *connection, gboolean success)
-{
-    if (success) {
-        connection->state = LM_CONNECTION_STATE_AUTHENTICATED;
-    } else {
-        connection->state = LM_CONNECTION_STATE_OPEN;
-    }
-
-    if (connection->auth_cb) {
-        LmCallback *cb = connection->auth_cb;
-
-        connection->auth_cb = NULL;
-
-        if (cb->func) {
-            (* ((LmResultFunction) cb->func)) (connection,
-                                               success,
-                                               cb->user_data);
-        }
-
-        _lm_utils_free_callback (cb);
-    }
-}
-
 static LmHandlerResult
 connection_bind_reply (LmMessageHandler *handler,
                        LmConnection     *connection,