diff options
author | Richard Mudgett <rmudgett@digium.com> | 2016-03-29 14:29:53 -0500 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2016-03-30 16:28:58 -0500 |
commit | cf49b440904d667c46319e2747da617a802f46d2 (patch) | |
tree | 5343a8ec4c3ed07ce69e54cc90e6c4f10154a947 | |
parent | e1fdb0a6da0287452837c25b1295baa30b5866ed (diff) |
res_stasis_recording.c: Cleanup stasis_app_recording_find_by_name().
Change-Id: Ic7d93c402c498677a122505558859c853d4e5ac7
-rw-r--r-- | res/res_stasis_recording.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/res/res_stasis_recording.c b/res/res_stasis_recording.c index 392d92c8e..05b97bf69 100644 --- a/res/res_stasis_recording.c +++ b/res/res_stasis_recording.c @@ -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( |