diff options
Diffstat (limited to 'src/xmpp/presence.c')
-rw-r--r-- | src/xmpp/presence.c | 28 |
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); } } |