You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2008/04/01 08:16:13 UTC
svn commit: r643291 - in /webservices/axis2/trunk/c:
include/axis2_http_transport.h src/core/transport/http/common/http_worker.c
Author: dinesh
Date: Mon Mar 31 23:16:12 2008
New Revision: 643291
URL: http://svn.apache.org/viewvc?rev=643291&view=rev
Log:
code formatting , more log messages and comments into code.
Modified:
webservices/axis2/trunk/c/include/axis2_http_transport.h
webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c
Modified: webservices/axis2/trunk/c/include/axis2_http_transport.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_http_transport.h?rev=643291&r1=643290&r2=643291&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_transport.h (original)
+++ webservices/axis2/trunk/c/include/axis2_http_transport.h Mon Mar 31 23:16:12 2008
@@ -987,6 +987,8 @@
#define AXIS2_COLON ':'
+#define AXIS2_COLON_STR ":"
+
#define AXIS2_CONTENT_TYPE_ACTION ";action=\""
#define AXIS2_CONTENT_TYPE_CHARSET ";charset="
@@ -1024,6 +1026,8 @@
#define AXIS2_EQ '='
#define AXIS2_HTTP_SERVER " (Simple Axis2 HTTP Server)"
+
+#define AXIS2_COMMA_SPACE_STR ", "
/** @} */
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c?rev=643291&r1=643290&r2=643291&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c Mon Mar 31 23:16:12 2008
@@ -168,9 +168,16 @@
content_length =
axis2_http_simple_request_get_content_length(simple_request, env);
- http_version =
- axis2_http_request_line_get_http_version
- (axis2_http_simple_request_get_request_line(simple_request, env), env);
+
+ request_line = axis2_http_simple_request_get_request_line (simple_request,
+ env);
+ if (request_line)
+ {
+ http_method = axis2_http_request_line_get_method(request_line, env);
+ }
+
+ http_version = axis2_http_request_line_get_http_version (request_line, env);
+
if (!http_version)
{
AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NULL_HTTP_VERSION,
@@ -228,14 +235,8 @@
(encoding_header_value,
AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED)))
{
- if (0 ==
- axutil_strcasecmp(axis2_http_request_line_get_method
- (axis2_http_simple_request_get_request_line
- (simple_request, env), env), AXIS2_HTTP_POST) ||
- 0 ==
- axutil_strcasecmp(axis2_http_request_line_get_method
- (axis2_http_simple_request_get_request_line
- (simple_request, env), env), AXIS2_HTTP_PUT))
+ if (0 == axutil_strcasecmp(http_method, AXIS2_HTTP_POST) ||
+ 0 == axutil_strcasecmp(http_method, AXIS2_HTTP_PUT))
{
axis2_http_simple_response_set_status_line(
response, env,
@@ -284,9 +285,7 @@
peer_property);
}
- path =
- axis2_http_request_line_get_uri
- (axis2_http_simple_request_get_request_line(simple_request, env), env);
+ path = axis2_http_request_line_get_uri (request_line, env);
request_url = axutil_url_create(env, AXIS2_HTTP_PROTOCOL, svr_ip,
http_worker->svr_port, path);
@@ -394,6 +393,7 @@
}
while(token);
}
+
if (accept_charset_record_list &&
axutil_array_list_size(accept_charset_record_list, env) > 0)
{
@@ -480,14 +480,6 @@
}
- request_line = axis2_http_simple_request_get_request_line (simple_request,
- env);
-
- if (request_line)
- {
- http_method = axis2_http_request_line_get_method(request_line, env);
- }
-
if (0 == axutil_strcasecmp(http_method, AXIS2_HTTP_GET))
{
@@ -506,29 +498,27 @@
is_put = AXIS2_TRUE;
}
- if (is_get || is_head || is_delete)
- {
-
- axutil_hash_t *request_params = NULL;
- axis2_char_t *request_uri = NULL;
- axis2_char_t *url_ext_form = NULL;
- const axis2_char_t *content_type = NULL;
-
- request_uri = axis2_http_request_line_get_uri (request_line, env);
- request_params =
- axis2_http_transport_utils_get_request_params(env,
- request_uri);
- url_ext_form = axutil_url_to_external_form(request_url, env);
+ axutil_hash_t *request_params = NULL;
+ axis2_char_t *request_uri = NULL;
+ axis2_char_t *url_ext_form = NULL;
+ const axis2_char_t *content_type = NULL;
- content_type =
- axis2_http_simple_request_get_content_type(simple_request,
- env);
+ request_uri = axis2_http_request_line_get_uri (request_line, env);
+ request_params =
+ axis2_http_transport_utils_get_request_params(env,
+ request_uri);
+ url_ext_form = axutil_url_to_external_form(request_url, env);
+ content_type =
+ axis2_http_simple_request_get_content_type(simple_request,
+ env);
+
+ if (is_get || is_head || is_delete)
+ {
if (is_get)
{
-
-
+ /* HTTP GET */
processed =
axis2_http_transport_utils_process_http_get_request (env,
msg_ctx,
@@ -542,6 +532,7 @@
}
else if (is_delete)
{
+ /* HTTP DELETE */
processed =
axis2_http_transport_utils_process_http_delete_request (env,
msg_ctx,
@@ -555,6 +546,7 @@
}
else if (is_head)
{
+ /* HTTP HEAD */
processed =
axis2_http_transport_utils_process_http_head_request (env,
msg_ctx,
@@ -575,9 +567,11 @@
axis2_char_t *body_string = NULL;
axis2_char_t *wsdl = NULL;
axis2_bool_t is_services_path = AXIS2_FALSE;
+
if (!is_delete)
{
axis2_char_t *temp = NULL;
+ /* check whether request url have "/services" */
temp = strstr(axutil_url_get_path(request_url, env), AXIS2_REQUEST_URL_PREFIX);
if (temp)
{
@@ -594,9 +588,11 @@
}
+ /* processing request for WSDL via "?wsdl" */
wsdl = strstr(url_external_form, AXIS2_REQUEST_WSDL);
if (is_services_path)
{
+ /* request for service */
axis2_http_simple_response_set_status_line(response, env,
http_version,
AXIS2_HTTP_RESPONSE_OK_CODE_VAL,
@@ -612,6 +608,7 @@
}
else if (!is_delete && wsdl)
{
+ /* Request is not for delete and ask for wsdl */
axis2_http_simple_response_set_status_line(response, env,
http_version,
AXIS2_HTTP_RESPONSE_OK_CODE_VAL,
@@ -627,6 +624,8 @@
}
else if (env->error->error_number == AXIS2_ERROR_SVC_OR_OP_NOT_FOUND)
{
+
+ /* Processing SVC or Operation Not found case */
axutil_array_list_t *method_list = NULL;
int size = 0;
method_list = axis2_msg_ctx_get_supported_rest_http_methods(msg_ctx, env);
@@ -637,24 +636,33 @@
axis2_char_t *method_list_str = NULL;
axis2_char_t *temp;
int i = 0;
- method_list_str = AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * 29);
+ method_list_str = AXIS2_MALLOC(env->allocator,
+ sizeof(axis2_char_t) * 29);
+
+ if (!method_list_str)
+ {
+ AXIS2_HANDLE_ERROR (env, AXIS2_ERROR_NO_MEMORY, AXIS2_FALSE);
+ }
+
temp = method_list_str;
for (i = 0; i < size; i++)
{
if (i)
{
- sprintf(temp, ", ");
+ sprintf(temp, AXIS2_COMMA_SPACE_STR);
temp += 2;
}
sprintf(temp, "%s", (axis2_char_t *)
axutil_array_list_get(method_list, env, i));
temp += strlen(temp);
}
- *temp = '\0';
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_VAL,
- AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_NAME);
+ *temp = AXIS2_ESC_NULL;
+
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_NAME);
body_string =
axis2_http_transport_utils_get_method_not_allowed(env,
@@ -662,15 +670,18 @@
allow_header = axis2_http_header_create(env,
AXIS2_HTTP_HEADER_ALLOW,
method_list_str);
- axis2_http_simple_response_set_header(response, env, allow_header);
+ axis2_http_simple_response_set_header(response,
+ env, allow_header);
AXIS2_FREE(env->allocator, method_list_str);
}
else
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_VAL,
- AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_NAME);
+ /* 404 Not Found */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_NAME);
body_string = axis2_http_transport_utils_get_not_found(env,
conf_ctx);
@@ -683,120 +694,155 @@
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL,
- AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_NAME);
+ /* 400 Bad Request */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_NAME);
body_string = axis2_http_transport_utils_get_bad_request(env,
conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ cont_type = axis2_http_header_create(
+ env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL,
- AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_NAME);
- body_string = axis2_http_transport_utils_get_request_timeout(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ /* 408 , Request Time Out */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_request_timeout(env,
+ conf_ctx);
+ cont_type = axis2_http_header_create(
+ env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL,
- AXIS2_HTTP_RESPONSE_CONFLICT_CODE_NAME);
+ /* 409, Conflict */
- body_string = axis2_http_transport_utils_get_conflict(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_CONFLICT_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_conflict(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_GONE_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_GONE_CODE_VAL,
- AXIS2_HTTP_RESPONSE_GONE_CODE_NAME);
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_GONE_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_GONE_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_gone(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
- body_string = axis2_http_transport_utils_get_gone(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL,
- AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_NAME);
+ /* 412 Precondition failed */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_precondition_failed(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
- body_string = axis2_http_transport_utils_get_precondition_failed(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL,
- AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_NAME);
-
- body_string = axis2_http_transport_utils_get_request_entity_too_large(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ /* 413 entity too large */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_request_entity_too_large(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL,
- AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_NAME);
+ /* 503, Service Unavailable*/
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_service_unavailable(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
- body_string = axis2_http_transport_utils_get_service_unavailable(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL,
- AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME);
+ /* 500 Internal Server Error */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME);
- body_string = axis2_http_transport_utils_get_internal_server_error(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ body_string =
+ axis2_http_transport_utils_get_internal_server_error(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
@@ -809,41 +855,57 @@
body_string);
}
sprintf(str_len, "%d", axutil_strlen(body_string));
- cont_len = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_LENGTH,
- str_len);
+ cont_len =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_LENGTH,
+ str_len);
axis2_http_simple_response_set_header(response, env, cont_len);
}
+
axis2_http_worker_set_response_headers(http_worker, env, svr_conn,
simple_request, response, 0);
+
axis2_simple_http_svr_conn_write_response(svr_conn, env, response);
axis2_http_simple_response_free(response, env);
request_handled = AXIS2_TRUE;
status = AXIS2_TRUE;
}
}
- else if (0 ==
- axutil_strcasecmp(axis2_http_request_line_get_method
- (axis2_http_simple_request_get_request_line
- (simple_request, env), env), AXIS2_HTTP_POST) || is_put)
+ else if (0 == axutil_strcasecmp(http_method, AXIS2_HTTP_POST) || is_put)
{
if (is_put)
{
- status = axis2_http_transport_utils_process_http_put_request
- (env, msg_ctx, request_body, out_stream,
- axis2_http_simple_request_get_content_type(simple_request, env),
- content_length, soap_action_str, url_external_form);
+ status =
+ axis2_http_transport_utils_process_http_put_request (env,
+ msg_ctx,
+ request_body,
+ out_stream,
+ content_type,
+ content_length,
+ soap_action_str,
+ url_ext_form);
+
+
}
else
{
- status = axis2_http_transport_utils_process_http_post_request
- (env, msg_ctx, request_body, out_stream,
- axis2_http_simple_request_get_content_type(simple_request, env),
- content_length, soap_action_str, url_external_form);
+ status =
+ axis2_http_transport_utils_process_http_post_request (env,
+ msg_ctx,
+ request_body,
+ out_stream,
+ content_type,
+ content_length,
+ soap_action_str,
+ url_ext_form);
+
}
+
if (AXIS2_FAILURE == status && (is_put ||
axis2_msg_ctx_get_doing_rest(msg_ctx, env)))
{
+ /* Failure Occure while processing REST */
+
axis2_http_header_t *cont_len = NULL;
axis2_http_header_t *cont_type = NULL;
axis2_char_t *body_string = NULL;
@@ -851,7 +913,8 @@
{
axutil_array_list_t *method_list = NULL;
int size = 0;
- method_list = axis2_msg_ctx_get_supported_rest_http_methods(msg_ctx, env);
+ method_list =
+ axis2_msg_ctx_get_supported_rest_http_methods(msg_ctx, env);
size = axutil_array_list_size(method_list, env);
if (method_list && size)
{
@@ -859,24 +922,33 @@
axis2_char_t *method_list_str = NULL;
axis2_char_t *temp;
int i = 0;
- method_list_str = AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * 29);
+ method_list_str = AXIS2_MALLOC(env->allocator,
+ sizeof(axis2_char_t) * 29);
+ if (!method_list_str)
+ {
+ AXIS2_HANDLE_ERROR (env, AXIS2_ERROR_NO_MEMORY, AXIS2_FALSE);
+ }
+
temp = method_list_str;
for (i = 0; i < size; i++)
{
if (i)
{
- sprintf(temp, ", ");
+ sprintf(temp, AXIS2_COMMA_SPACE_STR);
temp += 2;
}
sprintf(temp, "%s", (axis2_char_t *)
axutil_array_list_get(method_list, env, i));
temp += strlen(temp);
}
- *temp = '\0';
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_VAL,
- AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_NAME);
+ *temp = AXIS2_ESC_NULL;
+
+ /* 405 Method Not Allowed */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_NAME);
body_string =
axis2_http_transport_utils_get_method_not_allowed(env,
@@ -889,136 +961,179 @@
}
else
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_VAL,
- AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_NAME);
+ /* 404 Not Found */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_NAME);
- body_string = axis2_http_transport_utils_get_not_found(env,
- conf_ctx);
+ body_string =
+ axis2_http_transport_utils_get_not_found(env,
+ conf_ctx);
}
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL,
- AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_NAME);
+ /* 400, Bad Request */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_NAME);
- body_string = axis2_http_transport_utils_get_bad_request(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ body_string =
+ axis2_http_transport_utils_get_bad_request(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL,
- AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_NAME);
+ /* 408, Request Timeout */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_NAME);
- body_string = axis2_http_transport_utils_get_request_timeout(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ body_string =
+ axis2_http_transport_utils_get_request_timeout(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL,
- AXIS2_HTTP_RESPONSE_CONFLICT_CODE_NAME);
+ /* 409, Conflict Types */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_CONFLICT_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_conflict(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
- body_string = axis2_http_transport_utils_get_conflict(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_GONE_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_GONE_CODE_VAL,
- AXIS2_HTTP_RESPONSE_GONE_CODE_NAME);
+ /* 410, Gone. Resource no longer available */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_GONE_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_GONE_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_gone(env,
+ conf_ctx);
+
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
- body_string = axis2_http_transport_utils_get_gone(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL,
- AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_NAME);
+ /*410, Precondition for the url failed */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_precondition_failed(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
- body_string = axis2_http_transport_utils_get_precondition_failed(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL,
- AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_NAME);
+ /* 413, Request entity too large */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_NAME);
- body_string = axis2_http_transport_utils_get_request_entity_too_large(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
+ body_string =
+ axis2_http_transport_utils_get_request_entity_too_large(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else if (axis2_msg_ctx_get_status_code(msg_ctx, env) ==
AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL)
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL,
- AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_NAME);
+ /* 513, Service Unavailable */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_service_unavailable(env,
+ conf_ctx);
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
- body_string = axis2_http_transport_utils_get_service_unavailable(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
else
{
- axis2_http_simple_response_set_status_line(response, env,
- http_version,
- AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL,
- AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME);
+ /* 500, Internal Server Error */
+ axis2_http_simple_response_set_status_line(
+ response, env,
+ http_version,
+ AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL,
+ AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME);
+
+ body_string =
+ axis2_http_transport_utils_get_internal_server_error(env,
+ conf_ctx);
+
+ cont_type =
+ axis2_http_header_create(env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
- body_string = axis2_http_transport_utils_get_internal_server_error(env,
- conf_ctx);
- cont_type = axis2_http_header_create(env,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML);
axis2_http_simple_response_set_header(response, env, cont_type);
}
@@ -1068,12 +1183,12 @@
if (axis2_msg_ctx_get_is_soap_11(msg_ctx, env))
{
- fault_code = AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX ":"
+ fault_code = AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX AXIS2_COLON_STR
AXIOM_SOAP11_FAULT_CODE_SENDER;
}
else
{
- fault_code = AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX ":"
+ fault_code = AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX AXIS2_COLON_STR
AXIOM_SOAP12_SOAP_FAULT_VALUE_SENDER;
}
@@ -1088,42 +1203,48 @@
if (!http_error_value)
{
sprintf(status_line_str, "%s %s\r\n",
- axis2_http_request_line_get_http_version(req_line, env),
+ http_version,
AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR);
}
else
{
sprintf(status_line_str, "%s %s",
- axis2_http_request_line_get_http_version(req_line,
- env),
+ http_version,
http_error_value);
}
}
else
{
- sprintf(status_line_str, "%s %s\r\n", "HTTP/1.1",
+ sprintf(status_line_str, "%s %s\r\n",
+ AXIS2_HTTP_HEADER_PROTOCOL_11,
AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR);
}
tmp_stat_line = axis2_http_status_line_create(env, status_line_str);
if (!http_error_value)
+ {
axis2_engine_send_fault(engine, env, fault_ctx);
+ }
+ int status_code = 0;
+ axis2_char_t *reason_phrase = NULL;
+ int stream_len = 0;
+ status_code = axis2_http_status_line_get_status_code(tmp_stat_line, env);
+ reason_phrase = axis2_http_status_line_get_reason_phrase(tmp_stat_line, env);
axis2_http_simple_response_set_status_line(response, env,
- axis2_http_status_line_get_http_version
- (tmp_stat_line, env),
- axis2_http_status_line_get_status_code
- (tmp_stat_line, env),
- axis2_http_status_line_get_reason_phrase
- (tmp_stat_line, env));
+ http_version,
+ status_code,
+ reason_phrase);
+
axis2_http_simple_response_set_body_stream(response, env,
out_stream);
+
+ stream_len = axutil_stream_get_len (out_stream, env);
axis2_http_worker_set_response_headers(http_worker, env, svr_conn,
simple_request, response,
- axutil_stream_get_len
- (out_stream, env));
-
+ stream_len);
+
status = axis2_simple_http_svr_conn_write_response(svr_conn, env,
response);
request_handled = AXIS2_TRUE;
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org