]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_stasis: Fix app_is_subscribed_bridge_id.
authorCorey Farrell <git@cfware.com>
Mon, 8 Jan 2018 02:21:13 +0000 (21:21 -0500)
committerCorey Farrell <git@cfware.com>
Mon, 8 Jan 2018 04:00:54 +0000 (22:00 -0600)
Instead of searching for bridge_id provided in an argument this function
always searched for BRIDGE_ALL first.  Rewrite this function to work
like the similar functions for channel and endpoint functions.

Change-Id: Ib5caca69e11727c5c8a7284a1d00621f40f1e60a

res/stasis/app.c

index 5366819b6f58dc740cfc1608d00ac2d068cc4606..91b00657245ac30c02e70a45244c98555d136e0e 100644 (file)
@@ -1432,25 +1432,15 @@ int app_unsubscribe_bridge_id(struct stasis_app *app, const char *bridge_id)
 int app_is_subscribed_bridge_id(struct stasis_app *app, const char *bridge_id)
 {
        struct app_forwards *forwards;
-       SCOPED_AO2LOCK(lock, app->forwards);
-
-       forwards = ao2_find(app->forwards, BRIDGE_ALL, OBJ_SEARCH_KEY | OBJ_NOLOCK);
-       if (forwards) {
-               ao2_ref(forwards, -1);
-               return 1;
-       }
 
        if (ast_strlen_zero(bridge_id)) {
                bridge_id = BRIDGE_ALL;
        }
 
-       forwards = ao2_find(app->forwards, bridge_id, OBJ_SEARCH_KEY | OBJ_NOLOCK);
-       if (forwards) {
-               ao2_ref(forwards, -1);
-               return 1;
-       }
+       forwards = ao2_find(app->forwards, bridge_id, OBJ_SEARCH_KEY);
+       ao2_cleanup(forwards);
 
-       return 0;
+       return forwards != NULL;
 }
 
 static void *bridge_find(const struct stasis_app *app, const char *id)