]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_stasis_recording.c: Cleanup stasis_app_recording_find_by_name(). 02/2502/1
authorRichard Mudgett <rmudgett@digium.com>
Tue, 29 Mar 2016 19:29:53 +0000 (14:29 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 30 Mar 2016 21:28:58 +0000 (16:28 -0500)
Change-Id: Ic7d93c402c498677a122505558859c853d4e5ac7

res/res_stasis_recording.c

index 392d92c8e54056d50a62feb69427e55194804fd4..05b97bf69087b44720a32163309c07772ead8a56 100644 (file)
@@ -265,7 +265,13 @@ static enum stasis_app_control_channel_result check_rule_recording(
        return STASIS_APP_CHANNEL_RECORDING;
 }
 
-struct stasis_app_control_rule rule_recording = {
+/*
+ * XXX This only works because there is one and only one rule in
+ * the system so it can be added to any number of channels
+ * without issue.  However, as soon as there is another rule then
+ * watch out for weirdness because of cross linked lists.
+ */
+static struct stasis_app_control_rule rule_recording = {
        .check_rule = check_rule_recording
 };
 
@@ -465,15 +471,7 @@ const char *stasis_app_recording_get_name(
 
 struct stasis_app_recording *stasis_app_recording_find_by_name(const char *name)
 {
-       RAII_VAR(struct stasis_app_recording *, recording, NULL, ao2_cleanup);
-
-       recording = ao2_find(recordings, name, OBJ_KEY);
-       if (recording == NULL) {
-               return NULL;
-       }
-
-       ao2_ref(recording, +1);
-       return recording;
+       return ao2_find(recordings, name, OBJ_KEY);
 }
 
 struct ast_json *stasis_app_recording_to_json(