From: Richard Mudgett Date: Tue, 29 Mar 2016 19:29:53 +0000 (-0500) Subject: res_stasis_recording.c: Cleanup stasis_app_recording_find_by_name(). X-Git-Tag: 14.0.0-beta1~301 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f36cba4b5613817b8218b9a763957a5494862bf;p=thirdparty%2Fasterisk.git res_stasis_recording.c: Cleanup stasis_app_recording_find_by_name(). Change-Id: Ic7d93c402c498677a122505558859c853d4e5ac7 --- diff --git a/res/res_stasis_recording.c b/res/res_stasis_recording.c index dcabfa6995..5482124194 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(