mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
res_ari: Fix create request body parameter parsing.
If parameters were passed in the body as JSON to the create route they were not being parsed before checking to ensure that required fields were set. This change moves the parsing so it occurs before checking. ASTERISK-28940 Change-Id: I898b4c3c7ae1cde19a6840e59f498822701cf5cf
This commit is contained in:
committed by
Joshua C. Colp
parent
e74dde5100
commit
fa7c69f40f
@@ -1794,18 +1794,6 @@ void ast_ari_channels_create(struct ast_variable *headers,
|
||||
struct ast_format_cap *request_cap;
|
||||
struct ast_channel *originator;
|
||||
|
||||
if (!ast_strlen_zero(args->originator) && !ast_strlen_zero(args->formats)) {
|
||||
ast_ari_response_error(response, 400, "Bad Request",
|
||||
"Originator and formats can't both be specified");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ast_strlen_zero(args->endpoint)) {
|
||||
ast_ari_response_error(response, 400, "Bad Request",
|
||||
"Endpoint must be specified");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Parse any query parameters out of the body parameter */
|
||||
if (args->variables) {
|
||||
struct ast_json *json_variables;
|
||||
@@ -1818,6 +1806,18 @@ void ast_ari_channels_create(struct ast_variable *headers,
|
||||
}
|
||||
}
|
||||
|
||||
if (!ast_strlen_zero(args->originator) && !ast_strlen_zero(args->formats)) {
|
||||
ast_ari_response_error(response, 400, "Bad Request",
|
||||
"Originator and formats can't both be specified");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ast_strlen_zero(args->endpoint)) {
|
||||
ast_ari_response_error(response, 400, "Bad Request",
|
||||
"Endpoint must be specified");
|
||||
return;
|
||||
}
|
||||
|
||||
chan_data = ast_calloc(1, sizeof(*chan_data));
|
||||
if (!chan_data) {
|
||||
ast_ari_response_alloc_failed(response);
|
||||
|
Reference in New Issue
Block a user