From 9f8a7f52a5e1a43224d9418c1e64463d2affc5b1 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 24 Feb 2013 15:07:33 +0000 Subject: Add resource only when resourcepart in JID #152 --- src/xmpp/presence.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/xmpp/presence.c b/src/xmpp/presence.c index 28e2039e..b9f2b8d4 100644 --- a/src/xmpp/presence.c +++ b/src/xmpp/presence.c @@ -420,19 +420,23 @@ _available_handler(xmpp_conn_t * const conn, } } - // if not self presence (TODO allow self presence from other resources?) + // if not self presence if (strcmp(my_jid->barejid, from_jid->barejid) !=0) { - // create the resource - 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); + // 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 presence - resource_presence_t presence = resource_presence_from_string(show_str); - Resource *resource = resource_new(from_jid->resourcepart, presence, - status_str, priority, caps_key); - connection_add_available_resource(resource); + // 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); + connection_add_available_resource(resource); + } } jid_destroy(my_jid); -- cgit 1.4.1-2-gfad0