[asterisk-commits] dlee: branch dlee/ASTERISK-21969 r396840 - in /team/dlee/ASTERISK-21969: res/...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Aug 16 10:46:20 CDT 2013


Author: dlee
Date: Fri Aug 16 10:46:18 2013
New Revision: 396840

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=396840
Log:
Handle empty apps argument

Modified:
    team/dlee/ASTERISK-21969/res/res_ari_asterisk.c
    team/dlee/ASTERISK-21969/res/res_ari_bridges.c
    team/dlee/ASTERISK-21969/res/res_ari_events.c
    team/dlee/ASTERISK-21969/rest-api-templates/param_parsing.mustache
    team/dlee/ASTERISK-21969/rest-api-templates/res_ari_resource.c.mustache

Modified: team/dlee/ASTERISK-21969/res/res_ari_asterisk.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ASTERISK-21969/res/res_ari_asterisk.c?view=diff&rev=396840&r1=396839&r2=396840
==============================================================================
--- team/dlee/ASTERISK-21969/res/res_ari_asterisk.c (original)
+++ team/dlee/ASTERISK-21969/res/res_ari_asterisk.c Fri Aug 16 10:46:18 2013
@@ -81,8 +81,16 @@
 				goto fin;
 			}
 
-			args.only_count = ast_app_separate_args(
-				args.only_parse, ',', vals, ARRAY_LEN(vals));
+			if (strlen(args.only_parse) == 0) {
+				/* ast_app_separate_args can't handle "" */
+				args.only_count = 1;
+				vals[0] = args.only_parse;
+			} else {
+				args.only_count = ast_app_separate_args(
+					args.only_parse, ',', vals,
+					ARRAY_LEN(vals));
+			}
+
 			if (args.only_count == 0) {
 				ast_ari_response_alloc_failed(response);
 				goto fin;

Modified: team/dlee/ASTERISK-21969/res/res_ari_bridges.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ASTERISK-21969/res/res_ari_bridges.c?view=diff&rev=396840&r1=396839&r2=396840
==============================================================================
--- team/dlee/ASTERISK-21969/res/res_ari_bridges.c (original)
+++ team/dlee/ASTERISK-21969/res/res_ari_bridges.c Fri Aug 16 10:46:18 2013
@@ -300,8 +300,16 @@
 				goto fin;
 			}
 
-			args.channel_count = ast_app_separate_args(
-				args.channel_parse, ',', vals, ARRAY_LEN(vals));
+			if (strlen(args.channel_parse) == 0) {
+				/* ast_app_separate_args can't handle "" */
+				args.channel_count = 1;
+				vals[0] = args.channel_parse;
+			} else {
+				args.channel_count = ast_app_separate_args(
+					args.channel_parse, ',', vals,
+					ARRAY_LEN(vals));
+			}
+
 			if (args.channel_count == 0) {
 				ast_ari_response_alloc_failed(response);
 				goto fin;
@@ -402,8 +410,16 @@
 				goto fin;
 			}
 
-			args.channel_count = ast_app_separate_args(
-				args.channel_parse, ',', vals, ARRAY_LEN(vals));
+			if (strlen(args.channel_parse) == 0) {
+				/* ast_app_separate_args can't handle "" */
+				args.channel_count = 1;
+				vals[0] = args.channel_parse;
+			} else {
+				args.channel_count = ast_app_separate_args(
+					args.channel_parse, ',', vals,
+					ARRAY_LEN(vals));
+			}
+
 			if (args.channel_count == 0) {
 				ast_ari_response_alloc_failed(response);
 				goto fin;

Modified: team/dlee/ASTERISK-21969/res/res_ari_events.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ASTERISK-21969/res/res_ari_events.c?view=diff&rev=396840&r1=396839&r2=396840
==============================================================================
--- team/dlee/ASTERISK-21969/res/res_ari_events.c (original)
+++ team/dlee/ASTERISK-21969/res/res_ari_events.c Fri Aug 16 10:46:18 2013
@@ -89,8 +89,16 @@
 				goto fin;
 			}
 
-			args.app_count = ast_app_separate_args(
-				args.app_parse, ',', vals, ARRAY_LEN(vals));
+			if (strlen(args.app_parse) == 0) {
+				/* ast_app_separate_args can't handle "" */
+				args.app_count = 1;
+				vals[0] = args.app_parse;
+			} else {
+				args.app_count = ast_app_separate_args(
+					args.app_parse, ',', vals,
+					ARRAY_LEN(vals));
+			}
+
 			if (args.app_count == 0) {
 				ast_ari_response_alloc_failed(response);
 				goto fin;
@@ -126,14 +134,16 @@
 		 * negotiation. Param parsing should happen earlier, but we
 		 * need a way to pass it through the WebSocket code to the
 		 * callback */
-		RAII_VAR(char *, msg, NULL, ast_free);
+		RAII_VAR(char *, msg, NULL, ast_json_free);
 		if (response->message) {
 			msg = ast_json_dump_string(response->message);
 		} else {
-			msg = ast_strdup("?");
+			ast_log(LOG_ERROR, "Missing response message\n");
 		}
-		ast_websocket_write(ws_session, AST_WEBSOCKET_OPCODE_TEXT, msg,
-			strlen(msg));
+		if (msg) {
+			ast_websocket_write(ws_session,
+				AST_WEBSOCKET_OPCODE_TEXT, msg,	strlen(msg));
+		}
 	}
 	ast_free(args.app_parse);
 	ast_free(args.app);

Modified: team/dlee/ASTERISK-21969/rest-api-templates/param_parsing.mustache
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ASTERISK-21969/rest-api-templates/param_parsing.mustache?view=diff&rev=396840&r1=396839&r2=396840
==============================================================================
--- team/dlee/ASTERISK-21969/rest-api-templates/param_parsing.mustache (original)
+++ team/dlee/ASTERISK-21969/rest-api-templates/param_parsing.mustache Fri Aug 16 10:46:18 2013
@@ -36,8 +36,16 @@
 				goto fin;
 			}
 
-			args.{{c_name}}_count = ast_app_separate_args(
-				args.{{c_name}}_parse, ',', vals, ARRAY_LEN(vals));
+			if (strlen(args.{{c_name}}_parse) == 0) {
+				/* ast_app_separate_args can't handle "" */
+				args.{{c_name}}_count = 1;
+				vals[0] = args.{{c_name}}_parse;
+			} else {
+				args.{{c_name}}_count = ast_app_separate_args(
+					args.{{c_name}}_parse, ',', vals,
+					ARRAY_LEN(vals));
+			}
+
 			if (args.{{c_name}}_count == 0) {
 				ast_ari_response_alloc_failed(response);
 				goto fin;

Modified: team/dlee/ASTERISK-21969/rest-api-templates/res_ari_resource.c.mustache
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ASTERISK-21969/rest-api-templates/res_ari_resource.c.mustache?view=diff&rev=396840&r1=396839&r2=396840
==============================================================================
--- team/dlee/ASTERISK-21969/rest-api-templates/res_ari_resource.c.mustache (original)
+++ team/dlee/ASTERISK-21969/rest-api-templates/res_ari_resource.c.mustache Fri Aug 16 10:46:18 2013
@@ -174,14 +174,16 @@
 		 * negotiation. Param parsing should happen earlier, but we
 		 * need a way to pass it through the WebSocket code to the
 		 * callback */
-		RAII_VAR(char *, msg, NULL, ast_free);
+		RAII_VAR(char *, msg, NULL, ast_json_free);
 		if (response->message) {
 			msg = ast_json_dump_string(response->message);
 		} else {
-			msg = ast_strdup("?");
+			ast_log(LOG_ERROR, "Missing response message\n");
 		}
-		ast_websocket_write(ws_session, AST_WEBSOCKET_OPCODE_TEXT, msg,
-			strlen(msg));
+		if (msg) {
+			ast_websocket_write(ws_session,
+				AST_WEBSOCKET_OPCODE_TEXT, msg,	strlen(msg));
+		}
 	}
 {{> param_cleanup}}
 }




More information about the asterisk-commits mailing list