]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 333378 via svnmerge from
authorJonathan Rose <jrose@digium.com>
Fri, 26 Aug 2011 16:28:03 +0000 (16:28 +0000)
committerJonathan Rose <jrose@digium.com>
Fri, 26 Aug 2011 16:28:03 +0000 (16:28 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r333378 | jrose | 2011-08-26 11:19:07 -0500 (Fri, 26 Aug 2011) | 13 lines

  [patch] Buddies are always auto-registered when processing the roster

  Reporter said autoregister flag was ignored for registering 'buddies' which
  had a subscription to us. Verified that this was the case and observed how
  the patch addressed this and made sure it didn't break anything.

  (closes issue ASTERISK-14233)
  Reported by: Simon Arlott
  Patches:
        asterisk-0015229.patch (license #5756) patch uploaded by Simon Arlott
  Tested by: Jonathan Rose
........

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

res/res_jabber.c

index bfbdc7d440205f2cf7902aa0b33bb70437ef2316..3d4d136f69825f67b34f2176d81dbe56db2a40a8 100644 (file)
@@ -3058,10 +3058,12 @@ static int aji_filter_roster(void *data, ikspak *pak)
                        if (ast_test_flag(&client->flags, AJI_AUTOPRUNE)) {
                                ast_set_flag(&buddy->flags, AJI_AUTOPRUNE);
                                ASTOBJ_MARK(buddy);
-                       } else if (!iks_strcmp(iks_find_attrib(x, "subscription"), "none") || !iks_strcmp(iks_find_attrib(x, "subscription"), "from")) {
-                               /* subscribe to buddy's presence only
-                                  if we really need to */
-                               ast_set_flag(&buddy->flags, AJI_AUTOREGISTER);
+                       } else if (ast_test_flag(&client->flags, AJI_AUTOREGISTER)) {
+                               if (!iks_strcmp(iks_find_attrib(x, "subscription"), "none") || !iks_strcmp(iks_find_attrib(x, "subscription"), "from")) {
+                                       /* subscribe to buddy's presence only
+                                          if we really need to */
+                                       ast_set_flag(&buddy->flags, AJI_AUTOREGISTER);
+                               }
                        }
                        ASTOBJ_UNLOCK(buddy);
                        if (buddy) {