about summary refs log tree commit diff stats
path: root/src/xmpp/presence.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp/presence.c')
-rw-r--r--src/xmpp/presence.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/xmpp/presence.c b/src/xmpp/presence.c
index da0a97d1..366aa64c 100644
--- a/src/xmpp/presence.c
+++ b/src/xmpp/presence.c
@@ -425,22 +425,20 @@ _available_handler(xmpp_conn_t * const conn,
         }
     }
 
-    // if not self presence
-    if (strcmp(my_jid->barejid, from_jid->barejid) !=0) {
-        // create the resource, if fulljid
-        if (from_jid->resourcepart != NULL) {
-            resource_presence_t presence = resource_presence_from_string(show_str);
-            Resource *resource = resource_new(from_jid->resourcepart, presence,
-                status_str, priority, caps_key);
-            prof_handle_contact_online(from_jid->barejid, resource, last_activity);
-        }
-    } else {
-        // handle self presenc, if fulljid
-        if (from_jid->resourcepart != NULL) {
-            resource_presence_t presence = resource_presence_from_string(show_str);
-            Resource *resource = resource_new(from_jid->resourcepart, presence,
-                status_str, priority, caps_key);
+    // handle resource, if exists
+    if (from_jid->resourcepart != NULL) {
+        resource_presence_t presence = resource_presence_from_string(show_str);
+        Resource *resource = resource_new(from_jid->resourcepart, presence,
+            status_str, priority, caps_key);
+
+        // self presence
+        if (strcmp(my_jid->barejid, from_jid->barejid) ==0) {
             connection_add_available_resource(resource);
+
+        // contact presence
+        } else {
+            prof_handle_contact_online(from_jid->barejid, resource,
+                last_activity);
         }
     }