diff options
author | phsultan <phsultan@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-10-07 16:18:49 +0000 |
---|---|---|
committer | phsultan <phsultan@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-10-07 16:18:49 +0000 |
commit | 38f9bd49db978802cbc1f24b4c96b67bdc73e863 (patch) | |
tree | ce2e4719289296917ad346a0627aaa88f260392a /res/res_jabber.c | |
parent | fdaf925af0e1e6dd07e5127046e882c90b8f725c (diff) |
Merged revisions 84902 via svnmerge from
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: http://svn.digium.com/svn/asterisk/trunk@84918 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res/res_jabber.c')
-rw-r--r-- | res/res_jabber.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/res/res_jabber.c b/res/res_jabber.c index 94c43bdb0..ec6ba7951 100644 --- a/res/res_jabber.c +++ b/res/res_jabber.c @@ -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"); |