[asterisk-commits] rmudgett: branch 12 r417932 - in /branches/12: main/ res/ res/ari/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jul 3 14:00:15 CDT 2014


Author: rmudgett
Date: Thu Jul  3 14:00:09 2014
New Revision: 417932

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=417932
Log:
res_ari: Fix some off-nominal paths just dropping the HTTP connection.

* Removed some incorrect newlines on ast_http_error() messages in
manager.c.

* Removed an incorrect newline in res_ari_channels.c.

Addendum to ASTERISK-23552

Modified:
    branches/12/main/manager.c
    branches/12/res/ari/resource_channels.c
    branches/12/res/res_ari.c

Modified: branches/12/main/manager.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/main/manager.c?view=diff&rev=417932&r1=417931&r2=417932
==============================================================================
--- branches/12/main/manager.c (original)
+++ branches/12/main/manager.c Thu Jul  3 14:00:09 2014
@@ -6845,7 +6845,7 @@
 		 */
 		if (!(session = build_mansession(remote_address))) {
 			ast_http_request_close_on_completion(ser);
-			ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)\n");
+			ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)");
 			return 0;
 		}
 		ao2_lock(session);
@@ -6871,7 +6871,7 @@
 
 	if (http_header == NULL || out == NULL) {
 		ast_http_request_close_on_completion(ser);
-		ast_http_error(ser, 500, "Server Error", "Internal Server Error (ast_str_create() out of memory)\n");
+		ast_http_error(ser, 500, "Server Error", "Internal Server Error (ast_str_create() out of memory)");
 		goto generic_callback_out;
 	}
 
@@ -6879,13 +6879,13 @@
 	s.fd = mkstemp(template);	/* create a temporary file for command output */
 	unlink(template);
 	if (s.fd <= -1) {
-		ast_http_error(ser, 500, "Server Error", "Internal Server Error (mkstemp failed)\n");
+		ast_http_error(ser, 500, "Server Error", "Internal Server Error (mkstemp failed)");
 		goto generic_callback_out;
 	}
 	s.f = fdopen(s.fd, "w+");
 	if (!s.f) {
 		ast_log(LOG_WARNING, "HTTP Manager, fdopen failed: %s!\n", strerror(errno));
-		ast_http_error(ser, 500, "Server Error", "Internal Server Error (fdopen failed)\n");
+		ast_http_error(ser, 500, "Server Error", "Internal Server Error (fdopen failed)");
 		close(s.fd);
 		goto generic_callback_out;
 	}
@@ -7081,7 +7081,7 @@
 	/* Digest found - parse */
 	if (ast_string_field_init(&d, 128)) {
 		ast_http_request_close_on_completion(ser);
-		ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)\n");
+		ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)");
 		return 0;
 	}
 
@@ -7110,7 +7110,7 @@
 		AST_RWLIST_UNLOCK(&users);
 		ast_log(LOG_NOTICE, "%s failed to pass IP ACL as '%s'\n", ast_sockaddr_stringify_addr(&session->addr), d.username);
 		ast_http_request_close_on_completion(ser);
-		ast_http_error(ser, 403, "Permission denied", "Permission denied\n");
+		ast_http_error(ser, 403, "Permission denied", "Permission denied");
 		return 0;
 	}
 
@@ -7161,7 +7161,7 @@
 		 */
 		if (!(session = build_mansession(remote_address))) {
 			ast_http_request_close_on_completion(ser);
-			ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)\n");
+			ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)");
 			return 0;
 		}
 		ao2_lock(session);
@@ -7229,13 +7229,13 @@
 	s.fd = mkstemp(template);	/* create a temporary file for command output */
 	unlink(template);
 	if (s.fd <= -1) {
-		ast_http_error(ser, 500, "Server Error", "Internal Server Error (mkstemp failed)\n");
+		ast_http_error(ser, 500, "Server Error", "Internal Server Error (mkstemp failed)");
 		goto auth_callback_out;
 	}
 	s.f = fdopen(s.fd, "w+");
 	if (!s.f) {
 		ast_log(LOG_WARNING, "HTTP Manager, fdopen failed: %s!\n", strerror(errno));
-		ast_http_error(ser, 500, "Server Error", "Internal Server Error (fdopen failed)\n");
+		ast_http_error(ser, 500, "Server Error", "Internal Server Error (fdopen failed)");
 		close(s.fd);
 		goto auth_callback_out;
 	}
@@ -7293,7 +7293,7 @@
 	out = ast_str_create(result_size * 2 + 512);
 	if (http_header == NULL || out == NULL) {
 		ast_http_request_close_on_completion(ser);
-		ast_http_error(ser, 500, "Server Error", "Internal Server Error (ast_str_create() out of memory)\n");
+		ast_http_error(ser, 500, "Server Error", "Internal Server Error (ast_str_create() out of memory)");
 		close_mansession_file(&s);
 		goto auth_callback_out;
 	}

Modified: branches/12/res/ari/resource_channels.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/ari/resource_channels.c?view=diff&rev=417932&r1=417931&r2=417932
==============================================================================
--- branches/12/res/ari/resource_channels.c (original)
+++ branches/12/res/ari/resource_channels.c Thu Jul  3 14:00:09 2014
@@ -790,7 +790,7 @@
 	if ((assignedids.uniqueid && AST_MAX_PUBLIC_UNIQUEID < strlen(assignedids.uniqueid))
 		|| (assignedids.uniqueid2 && AST_MAX_PUBLIC_UNIQUEID < strlen(assignedids.uniqueid2))) {
 		ast_ari_response_error(response, 400, "Bad Request",
-			"Uniqueid length exceeds maximum of %d\n", AST_MAX_PUBLIC_UNIQUEID);
+			"Uniqueid length exceeds maximum of %d", AST_MAX_PUBLIC_UNIQUEID);
 		return;
 	}
 

Modified: branches/12/res/res_ari.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/res_ari.c?view=diff&rev=417932&r1=417931&r2=417932
==============================================================================
--- branches/12/res/res_ari.c (original)
+++ branches/12/res/res_ari.c Thu Jul  3 14:00:09 2014
@@ -860,22 +860,27 @@
 	RAII_VAR(struct ast_str *, response_body, ast_str_create(256), ast_free);
 	RAII_VAR(struct ast_ari_conf_user *, user, NULL, ao2_cleanup);
 	struct ast_ari_response response = {};
-	int ret = 0;
 	RAII_VAR(struct ast_variable *, post_vars, NULL, ast_variables_destroy);
 
 	if (!response_body) {
-		return -1;
+		ast_http_request_close_on_completion(ser);
+		ast_http_error(ser, 500, "Server Error", "Out of memory");
+		return 0;
 	}
 
 	response.headers = ast_str_create(40);
 	if (!response.headers) {
-		return -1;
+		ast_http_request_close_on_completion(ser);
+		ast_http_error(ser, 500, "Server Error", "Out of memory");
+		return 0;
 	}
 
 	conf = ast_ari_config_get();
 	if (!conf || !conf->general) {
 		ast_free(response.headers);
-		return -1;
+		ast_http_request_close_on_completion(ser);
+		ast_http_error(ser, 500, "Server Error", "URI handler config missing");
+		return 0;
 	}
 
 	process_cors_request(headers, &response);
@@ -893,9 +898,10 @@
 				"Request body too large");
 			goto request_failed;
 		case ENOMEM:
+			ast_http_request_close_on_completion(ser);
 			ast_ari_response_error(&response, 500,
 				"Internal Server Error",
-				"Error processing request");
+				"Out of memory");
 			goto request_failed;
 		case EIO:
 			ast_ari_response_error(&response, 400,
@@ -940,6 +946,7 @@
 			"WWW-Authenticate: Basic realm=\"%s\"\r\n",
 			conf->general->auth_realm);
 	} else if (!ast_fully_booted) {
+		ast_http_request_close_on_completion(ser);
 		ast_ari_response_error(&response, 503, "Service Unavailable", "Asterisk not booted");
 	} else if (user->read_only && method != AST_HTTP_GET && method != AST_HTTP_OPTIONS) {
 		ast_ari_response_error(&response, 403, "Forbidden", "Write access denied");
@@ -986,7 +993,6 @@
 			response.response_text = "Internal Server Error";
 			ast_str_set(&response_body, 0, "%s", "");
 			ast_str_set(&response.headers, 0, "%s", "");
-			ret = -1;
 		}
 	}
 
@@ -999,7 +1005,7 @@
 	response_body = NULL;
 
 	ast_json_unref(response.message);
-	return ret;
+	return 0;
 }
 
 static struct ast_http_uri http_uri = {




More information about the asterisk-commits mailing list