From e22970b304b8045be1599e6f5127d2d8d19265fe Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 17 Mar 2013 21:53:34 +0000 Subject: [PATCH] Refactor resource handling in available handler --- src/xmpp/presence.c | 28 +++++++++++++--------------- 1 file 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); } }