ARI recordings: Issue HTTP failures for recording requests with file conflicts

If a file already exists in the recordings directory with the same name as what
we would record, issue a 422 instead of relying on the internal failure and
issuing success.

(closes issue ASTERISK-22623)
Reported by: Joshua Colp
Review: https://reviewboard.asterisk.org/r/2922/
........

Merged revisions 401973 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@401999 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jonathan Rose
2013-10-25 21:28:32 +00:00
parent 7b42a6828a
commit d8a760307e
11 changed files with 264 additions and 22 deletions

View File

@@ -348,6 +348,14 @@ struct stasis_app_recording *stasis_app_control_record(
recording->control = control;
recording->state = STASIS_APP_RECORDING_STATE_QUEUED;
if ((recording->options->if_exists == AST_RECORD_IF_EXISTS_FAIL) &&
(ast_fileexists(recording->absolute_name, NULL, NULL))) {
ast_log(LOG_WARNING, "Recording file '%s' already exists and ifExists option is failure.\n",
recording->absolute_name);
errno = EEXIST;
return NULL;
}
{
RAII_VAR(struct stasis_app_recording *, old_recording, NULL,
ao2_cleanup);