Author: file Date: Sat Feb 21 14:47:19 2015 New Revision: 432154 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=432154 Log: res_ari_channels: Return a 404 response when a requested channel variable does not exist.
This change makes it so that if a channel variable is requested and it does not exist a 404 response will be returned instead of an allocation failed response. This makes it easier to debug and figure out what is going on for a user. ASTERISK-24677 #close Reported by: Joshua Colp Modified: branches/13/res/ari/resource_channels.c branches/13/res/res_ari_channels.c branches/13/rest-api/api-docs/channels.json Modified: branches/13/res/ari/resource_channels.c URL: http://svnview.digium.com/svn/asterisk/branches/13/res/ari/resource_channels.c?view=diff&rev=432154&r1=432153&r2=432154 ============================================================================== --- branches/13/res/ari/resource_channels.c (original) +++ branches/13/res/ari/resource_channels.c Sat Feb 21 14:47:19 2015 @@ -1242,6 +1242,11 @@ ast_assert(response != NULL); + if (!value) { + ast_ari_response_alloc_failed(response); + return; + } + if (ast_strlen_zero(args->variable)) { ast_ari_response_error( response, 400, "Bad Request", @@ -1280,7 +1285,9 @@ } } else { if (!ast_str_retrieve_variable(&value, 0, channel, NULL, args->variable)) { - ast_ari_response_alloc_failed(response); + ast_ari_response_error( + response, 404, "Variable Not Found", + "Provided variable was not found"); return; } } Modified: branches/13/res/res_ari_channels.c URL: http://svnview.digium.com/svn/asterisk/branches/13/res/res_ari_channels.c?view=diff&rev=432154&r1=432153&r2=432154 ============================================================================== --- branches/13/res/res_ari_channels.c (original) +++ branches/13/res/res_ari_channels.c Sat Feb 21 14:47:19 2015 @@ -2173,7 +2173,7 @@ case 500: /* Internal Server Error */ case 501: /* Not Implemented */ case 400: /* Missing variable parameter. */ - case 404: /* Channel not found */ + case 404: /* Channel or variable not found */ case 409: /* Channel not in a Stasis application */ is_valid = 1; break; Modified: branches/13/rest-api/api-docs/channels.json URL: http://svnview.digium.com/svn/asterisk/branches/13/rest-api/api-docs/channels.json?view=diff&rev=432154&r1=432153&r2=432154 ============================================================================== --- branches/13/rest-api/api-docs/channels.json (original) +++ branches/13/rest-api/api-docs/channels.json Sat Feb 21 14:47:19 2015 @@ -1199,7 +1199,7 @@ }, { "code": 404, - "reason": "Channel not found" + "reason": "Channel or variable not found" }, { "code": 409, -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits