Merged revisions 84902 via svnmerge from
authorPhilippe Sultan <philippe.sultan@gmail.com>
Sun, 7 Oct 2007 16:18:49 +0000 (16:18 +0000)
committerPhilippe Sultan <philippe.sultan@gmail.com>
Sun, 7 Oct 2007 16:18:49 +0000 (16:18 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r84902 | phsultan | 2007-10-07 18:15:39 +0200 (Sun, 07 Oct 2007) | 5 lines

Presence packets from a client who's connected with our Jabber ID are
valid, therefore, those clients must be considered as buddies. The resource
string helps us make the distinction between clients.

Closes issue #10707, reported by yusufmotiwala.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84918 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_jabber.c

index 94c43bd..ec6ba79 100644 (file)
@@ -1269,8 +1269,12 @@ static void aji_handle_presence(struct aji_client *client, ikspak *pak)
                aji_create_buddy(pak->from->partial, client);
 
        buddy = ASTOBJ_CONTAINER_FIND(&client->buddies, pak->from->partial);
-       if (!buddy) {
-               ast_log(LOG_NOTICE, "Got presence packet from %s, someone not in our roster!!!!\n", pak->from->partial);
+       if (!buddy && pak->from->partial) {
+               /* allow our jid to be used to log in with another resource */
+               if (!strcmp((const char *)pak->from->partial, (const char *)client->jid->partial))
+                       aji_create_buddy(pak->from->partial, client);
+               else
+                       ast_log(LOG_NOTICE, "Got presence packet from %s, someone not in our roster!!!!\n", pak->from->partial);
                return;
        }
        type = iks_find_attrib(pak->x, "type");