]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_ari: Correct Location headers returned by some ARI resources 34/2834/2
authorSean Bright <sean.bright@gmail.com>
Sat, 14 May 2016 17:29:09 +0000 (13:29 -0400)
committerSean Bright <sean.bright@gmail.com>
Sat, 14 May 2016 17:46:56 +0000 (13:46 -0400)
The Location headers returned by:

 * /bridges/{bridgeId}/play
 * /bridges/{bridgeId}/record
 * /channels/{channelId}/play
 * /channels/{channelId}/record

Did not have the '/ari' prefix, and in the case of the 'play' resources, were
using 'playback' instead of 'playbacks.'

Change-Id: I957c58a3a1471bf477dae7c67faa1b74fcd9241c

res/ari/resource_bridges.c
res/ari/resource_channels.c
res/res_ari.c

index a37b831468a0b68865c48e0ebdc763c19491f75f..a86f3129c116188d8a2683512b3699c6be4467a0 100644 (file)
@@ -381,7 +381,7 @@ static int ari_bridges_play_helper(const char *args_media,
                return -1;
        }
 
-       if (ast_asprintf(playback_url, "/playback/%s",
+       if (ast_asprintf(playback_url, "/playbacks/%s",
                        stasis_app_playback_get_id(playback)) == -1) {
                playback_url = NULL;
                ast_ari_response_alloc_failed(response);
index f722802d818155af11bdd970bd01af3d01b4cbb1..9e2db9de67feec9c75ccfe6098cf33fe3ae4264f 100644 (file)
@@ -524,7 +524,7 @@ static void ari_channels_handle_play(
                return;
        }
 
-       if (ast_asprintf(&playback_url, "/playback/%s",
+       if (ast_asprintf(&playback_url, "/playbacks/%s",
                        stasis_app_playback_get_id(playback)) == -1) {
                playback_url = NULL;
                ast_ari_response_error(
index f39db16cdba8422d04171810ac93c36e58369229..4a0a22d79a95a286973d99c02ddb4416dc200515 100644 (file)
@@ -304,10 +304,11 @@ void ast_ari_response_alloc_failed(struct ast_ari_response *response)
 void ast_ari_response_created(struct ast_ari_response *response,
        const char *url, struct ast_json *message)
 {
+       RAII_VAR(struct stasis_rest_handlers *, root, get_root_handler(), ao2_cleanup);
        response->message = message;
        response->response_code = 201;
        response->response_text = "Created";
-       ast_str_append(&response->headers, 0, "Location: %s\r\n", url);
+       ast_str_append(&response->headers, 0, "Location: /%s%s\r\n", root->path_segment, url);
 }
 
 static void add_allow_header(struct stasis_rest_handlers *handler,