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 sa...@apache.org on 2007/09/28 11:53:04 UTC
svn commit: r580276 [20/26] - in /webservices/axis2/trunk/c/src: core/addr/
core/clientapi/ core/context/ core/deployment/ core/description/
core/engine/ core/phaseresolver/ core/receivers/ core/transport/
core/transport/http/common/ core/transport/htt...
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/http_transport_sender.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/http_transport_sender.c?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/http_transport_sender.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/http_transport_sender.c Fri Sep 28 02:52:58 2007
@@ -1,3 +1,4 @@
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -28,7 +29,6 @@
#include <axiom_soap_body.h>
#include <axutil_types.h>
-
/**
* HTTP Transport Sender struct impl
* Axis2 HTTP Transport Sender impl
@@ -52,38 +52,33 @@
(transport_sender))
/***************************** Function headers *******************************/
-axis2_status_t AXIS2_CALL
-axis2_http_transport_sender_invoke(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env,
- axis2_msg_ctx_t *msg_ctx);
-
-axis2_status_t AXIS2_CALL
-axis2_http_transport_sender_clean_up(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env,
- axis2_msg_ctx_t *msg_ctx);
-
-axis2_status_t AXIS2_CALL
-axis2_http_transport_sender_init(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx,
- axis2_transport_out_desc_t *out_desc);
-
-axis2_status_t AXIS2_CALL
-axis2_http_transport_sender_write_message(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env,
- axis2_msg_ctx_t *msg_ctx,
- axis2_endpoint_ref_t *epr,
- axiom_soap_envelope_t *out,
- axiom_output_t *om_output);
-
-void AXIS2_CALL
-axis2_http_transport_sender_free(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env);
+axis2_status_t AXIS2_CALL axis2_http_transport_sender_invoke(
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env,
+ axis2_msg_ctx_t * msg_ctx);
+
+axis2_status_t AXIS2_CALL axis2_http_transport_sender_clean_up(
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env,
+ axis2_msg_ctx_t * msg_ctx);
+
+axis2_status_t AXIS2_CALL axis2_http_transport_sender_init(
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env,
+ axis2_conf_ctx_t * conf_ctx,
+ axis2_transport_out_desc_t * out_desc);
+
+axis2_status_t AXIS2_CALL axis2_http_transport_sender_write_message(
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env,
+ axis2_msg_ctx_t * msg_ctx,
+ axis2_endpoint_ref_t * epr,
+ axiom_soap_envelope_t * out,
+ axiom_output_t * om_output);
+
+void AXIS2_CALL axis2_http_transport_sender_free(
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env);
static const axis2_transport_sender_ops_t http_transport_sender_ops_var = {
axis2_http_transport_sender_init,
@@ -94,35 +89,35 @@
axis2_transport_sender_t *AXIS2_CALL
axis2_http_transport_sender_create(
- const axutil_env_t *env)
+ const axutil_env_t * env)
{
axis2_http_transport_sender_impl_t *transport_sender_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- transport_sender_impl = (axis2_http_transport_sender_impl_t *)AXIS2_MALLOC
- (env->allocator, sizeof(
- axis2_http_transport_sender_impl_t));
+ transport_sender_impl = (axis2_http_transport_sender_impl_t *) AXIS2_MALLOC
+ (env->allocator, sizeof(axis2_http_transport_sender_impl_t));
- if (! transport_sender_impl)
+ if (!transport_sender_impl)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- transport_sender_impl->http_version = axutil_strdup(env, AXIS2_HTTP_HEADER_PROTOCOL_11);
+ transport_sender_impl->http_version =
+ axutil_strdup(env, AXIS2_HTTP_HEADER_PROTOCOL_11);
transport_sender_impl->chunked = AXIS2_TRUE;
transport_sender_impl->connection_timeout =
AXIS2_HTTP_DEFAULT_CONNECTION_TIMEOUT;
transport_sender_impl->so_timeout = AXIS2_HTTP_DEFAULT_SO_TIMEOUT;
- transport_sender_impl->transport_sender.ops = &http_transport_sender_ops_var;
+ transport_sender_impl->transport_sender.ops =
+ &http_transport_sender_ops_var;
return &(transport_sender_impl->transport_sender);
}
-
void AXIS2_CALL
axis2_http_transport_sender_free(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env)
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env)
{
axis2_http_transport_sender_impl_t *transport_sender_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -138,12 +133,11 @@
return;
}
-
axis2_status_t AXIS2_CALL
axis2_http_transport_sender_invoke(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env,
- axis2_msg_ctx_t *msg_ctx)
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env,
+ axis2_msg_ctx_t * msg_ctx)
{
const axis2_char_t *char_set_enc = NULL;
axutil_string_t *char_set_enc_str = NULL;
@@ -163,28 +157,28 @@
AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
/*property = axis2_msg_ctx_get_property(msg_ctx, env,
- AXIS2_CHARACTER_SET_ENCODING);
- if (property)
- {
- char_set_enc = axutil_property_get_value(property, env);
- property = NULL;
- }*/
+ AXIS2_CHARACTER_SET_ENCODING);
+ if (property)
+ {
+ char_set_enc = axutil_property_get_value(property, env);
+ property = NULL;
+ } */
char_set_enc_str = axis2_msg_ctx_get_charset_encoding(msg_ctx, env);
if (char_set_enc_str)
{
char_set_enc = axutil_string_get_buffer(char_set_enc_str, env);
}
-
+
if (!char_set_enc)
{
- axis2_op_ctx_t *op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
+ axis2_op_ctx_t *op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
if (op_ctx)
{
axis2_ctx_t *ctx = axis2_op_ctx_get_base(op_ctx, env);
if (ctx)
{
- property = axis2_ctx_get_property(ctx, env,
- AXIS2_CHARACTER_SET_ENCODING);
+ property = axis2_ctx_get_property(ctx, env,
+ AXIS2_CHARACTER_SET_ENCODING);
if (property)
{
char_set_enc = axutil_property_get_value(property, env);
@@ -193,22 +187,22 @@
}
}
}
+
/**
* If we still can't find the char set enc we will
* use default
*/
- if (! char_set_enc)
+ if (!char_set_enc)
{
char_set_enc = AXIS2_DEFAULT_CHAR_SET_ENCODING;
}
- do_mtom = axis2_http_transport_utils_do_write_mtom(env,
- msg_ctx);
- axis2_msg_ctx_set_doing_mtom(msg_ctx, env, do_mtom);
- /*do_mtom = axis2_msg_ctx_get_doing_mtom(msg_ctx, env);*/
+ do_mtom = axis2_http_transport_utils_do_write_mtom(env, msg_ctx);
+ axis2_msg_ctx_set_doing_mtom(msg_ctx, env, do_mtom);
+ /*do_mtom = axis2_msg_ctx_get_doing_mtom(msg_ctx, env); */
/* axis2_msg_ctx_set_doing_rest(msg_ctx,
- env, axis2_http_transport_utils_is_doing_rest(env,
- msg_ctx));*/
+ env, axis2_http_transport_utils_is_doing_rest(env,
+ msg_ctx)); */
transport_url = axis2_msg_ctx_get_transport_url(msg_ctx, env);
if (transport_url)
@@ -217,38 +211,41 @@
}
else
{
- axis2_endpoint_ref_t *ctx_epr = axis2_msg_ctx_get_to(msg_ctx, env);
- if (ctx_epr && 0 != axutil_strcmp(
- AXIS2_WSA_ANONYMOUS_URL_SUBMISSION,
- axis2_endpoint_ref_get_address(ctx_epr, env)) &&
- 0 != axutil_strcmp(AXIS2_WSA_ANONYMOUS_URL,
- axis2_endpoint_ref_get_address(ctx_epr, env)) &&
- !(axutil_strstr(axis2_endpoint_ref_get_address(ctx_epr, env), AXIS2_WS_RM_ANONYMOUS_URL)))
+ axis2_endpoint_ref_t *ctx_epr = axis2_msg_ctx_get_to(msg_ctx, env);
+ if (ctx_epr && 0 != axutil_strcmp(AXIS2_WSA_ANONYMOUS_URL_SUBMISSION,
+ axis2_endpoint_ref_get_address
+ (ctx_epr, env)) &&
+ 0 != axutil_strcmp(AXIS2_WSA_ANONYMOUS_URL,
+ axis2_endpoint_ref_get_address(ctx_epr, env)) &&
+ !(axutil_strstr
+ (axis2_endpoint_ref_get_address(ctx_epr, env),
+ AXIS2_WS_RM_ANONYMOUS_URL)))
{
epr = ctx_epr;
}
}
- soap_data_out = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
- if (! soap_data_out)
+ soap_data_out = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
+ if (!soap_data_out)
{
AXIS2_ERROR_SET(env->error,
- AXIS2_ERROR_NULL_SOAP_ENVELOPE_IN_MSG_CTX,
- AXIS2_FAILURE);
+ AXIS2_ERROR_NULL_SOAP_ENVELOPE_IN_MSG_CTX,
+ AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s",
- AXIS2_ERROR_GET_MESSAGE(env->error));
- /*return AXIS2_FAILURE;*/
+ AXIS2_ERROR_GET_MESSAGE(env->error));
+ /*return AXIS2_FAILURE; */
return AXIS2_SUCCESS;
}
xml_writer = axiom_xml_writer_create_for_memory(env, NULL,
- AXIS2_TRUE, 0, AXIS2_XML_PARSER_TYPE_BUFFER);
- if (! xml_writer)
+ AXIS2_TRUE, 0,
+ AXIS2_XML_PARSER_TYPE_BUFFER);
+ if (!xml_writer)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Could not create xml_writer");
return AXIS2_FAILURE;
}
om_output = axiom_output_create(env, xml_writer);
- if (! om_output)
+ if (!om_output)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Could not create om_output");
axiom_xml_writer_free(xml_writer, env);
@@ -256,78 +253,85 @@
return AXIS2_FAILURE;
}
- axiom_output_set_soap11(om_output, env, axis2_msg_ctx_get_is_soap_11(msg_ctx, env));
+ axiom_output_set_soap11(om_output, env,
+ axis2_msg_ctx_get_is_soap_11(msg_ctx, env));
if (epr)
{
- if (axutil_strcmp(AXIS2_WSA_NONE_URL_SUBMISSION, axis2_endpoint_ref_get_address(epr, env)) == 0 ||
- axutil_strcmp(AXIS2_WSA_NONE_URL, axis2_endpoint_ref_get_address(epr, env)) == 0)
+ if (axutil_strcmp
+ (AXIS2_WSA_NONE_URL_SUBMISSION,
+ axis2_endpoint_ref_get_address(epr, env)) == 0 ||
+ axutil_strcmp(AXIS2_WSA_NONE_URL,
+ axis2_endpoint_ref_get_address(epr, env)) == 0)
{
epr = NULL;
}
else
{
- axis2_http_transport_sender_write_message(transport_sender, env, msg_ctx
- , epr, soap_data_out, om_output);
+ axis2_http_transport_sender_write_message(transport_sender, env,
+ msg_ctx, epr,
+ soap_data_out, om_output);
}
}
if (!epr)
{
- axutil_stream_t *out_stream = axis2_msg_ctx_get_transport_out_stream(msg_ctx, env);
-
- if (AXIS2_TRUE == axis2_msg_ctx_get_server_side(msg_ctx, env))
+ axutil_stream_t *out_stream =
+ axis2_msg_ctx_get_transport_out_stream(msg_ctx, env);
+
+ if (AXIS2_TRUE == axis2_msg_ctx_get_server_side(msg_ctx, env))
{
axis2_http_out_transport_info_t *out_info = NULL;
axis2_bool_t is_soap11 = AXIS2_FALSE;
- axis2_op_ctx_t *op_ctx = NULL;
+ axis2_op_ctx_t *op_ctx = NULL;
out_info = axis2_msg_ctx_get_http_out_transport_info(msg_ctx, env);
- if (! out_info)
+ if (!out_info)
{
AXIS2_ERROR_SET(env->error,
- AXIS2_ERROR_OUT_TRNSPORT_INFO_NULL, AXIS2_FAILURE);
+ AXIS2_ERROR_OUT_TRNSPORT_INFO_NULL,
+ AXIS2_FAILURE);
axiom_output_free(om_output, env);
om_output = NULL;
xml_writer = NULL;
return AXIS2_FAILURE;
}
- is_soap11 = axis2_msg_ctx_get_is_soap_11(msg_ctx, env);
+ is_soap11 = axis2_msg_ctx_get_is_soap_11(msg_ctx, env);
/* axiom_output_set_soap11(om_output, env, is_soap_11);
*/
AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING(out_info, env,
- char_set_enc);
+ char_set_enc);
if (AXIS2_TRUE == is_soap11)
{
AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE(out_info, env,
- AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML);
+ AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML);
}
else
{
AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE(out_info, env,
- AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP);
+ AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP);
}
-
- if (AXIS2_TRUE == axis2_msg_ctx_get_doing_rest(msg_ctx, env))
+
+ if (AXIS2_TRUE == axis2_msg_ctx_get_doing_rest(msg_ctx, env))
{
axiom_node_t *body_node = NULL;
- axiom_soap_body_t *soap_body = axiom_soap_envelope_get_body(
- soap_data_out, env);
+ axiom_soap_body_t *soap_body =
+ axiom_soap_envelope_get_body(soap_data_out, env);
- if (! soap_body)
+ if (!soap_body)
{
AXIS2_ERROR_SET(env->error,
- AXIS2_ERROR_SOAP_ENVELOPE_OR_SOAP_BODY_NULL,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SOAP_ENVELOPE_OR_SOAP_BODY_NULL,
+ AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s",
- AXIS2_ERROR_GET_MESSAGE(env->error));
+ AXIS2_ERROR_GET_MESSAGE(env->error));
axiom_output_free(om_output, env);
om_output = NULL;
xml_writer = NULL;
return AXIS2_FAILURE;
}
body_node = axiom_soap_body_get_base_node(soap_body, env);
- if (! body_node)
+ if (!body_node)
{
axiom_output_free(om_output, env);
om_output = NULL;
@@ -335,8 +339,8 @@
return AXIS2_FAILURE;
}
data_out = axiom_node_get_first_element(body_node, env);
- if (! data_out || axiom_node_get_node_type(data_out, env)
- != AXIOM_ELEMENT)
+ if (!data_out || axiom_node_get_node_type(data_out, env)
+ != AXIOM_ELEMENT)
{
axiom_output_free(om_output, env);
om_output = NULL;
@@ -344,47 +348,48 @@
return AXIS2_FAILURE;
}
axiom_node_serialize(data_out, env, om_output);
- buffer = (axis2_char_t*)axiom_xml_writer_get_xml(xml_writer, env);
+ buffer =
+ (axis2_char_t *) axiom_xml_writer_get_xml(xml_writer, env);
buffer_size = axiom_xml_writer_get_xml_size(xml_writer, env);
-
- axutil_stream_write(out_stream, env, buffer, buffer_size);
+
+ axutil_stream_write(out_stream, env, buffer, buffer_size);
}
else
{
- axiom_output_set_do_optimize(om_output, env,
- do_mtom);
+ axiom_output_set_do_optimize(om_output, env, do_mtom);
axiom_soap_envelope_serialize(soap_data_out, env, om_output,
- AXIS2_FALSE);
+ AXIS2_FALSE);
if (do_mtom)
{
axis2_char_t *content_type = NULL;
axiom_output_flush(om_output, env, &output_stream,
- &buffer_size);
- content_type = (axis2_char_t *)axiom_output_get_content_type(
- om_output,
- env);
+ &buffer_size);
+ content_type =
+ (axis2_char_t *)
+ axiom_output_get_content_type(om_output, env);
AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE(out_info,
- env, content_type);
+ env,
+ content_type);
buffer = output_stream;
- axutil_stream_write(out_stream, env, buffer, buffer_size);
- AXIS2_FREE(env->allocator, buffer);
+ axutil_stream_write(out_stream, env, buffer, buffer_size);
+ AXIS2_FREE(env->allocator, buffer);
}
else
{
- buffer = (axis2_char_t *)axiom_xml_writer_get_xml(xml_writer, env);
- buffer_size = axiom_xml_writer_get_xml_size(xml_writer, env);
- axutil_stream_write(out_stream, env, buffer, buffer_size);
+ buffer =
+ (axis2_char_t *) axiom_xml_writer_get_xml(xml_writer,
+ env);
+ buffer_size =
+ axiom_xml_writer_get_xml_size(xml_writer, env);
+ axutil_stream_write(out_stream, env, buffer, buffer_size);
}
}
-
-
- op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
+ op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
axis2_op_ctx_set_response_written(op_ctx, env, AXIS2_TRUE);
}
}
-
axiom_output_free(om_output, env);
om_output = NULL;
xml_writer = NULL;
@@ -400,12 +405,11 @@
return AXIS2_SUCCESS;
}
-
axis2_status_t AXIS2_CALL
axis2_http_transport_sender_clean_up(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env,
- axis2_msg_ctx_t *msg_ctx)
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env,
+ axis2_msg_ctx_t * msg_ctx)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
@@ -416,13 +420,12 @@
return AXIS2_SUCCESS;
}
-
axis2_status_t AXIS2_CALL
axis2_http_transport_sender_init(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx,
- axis2_transport_out_desc_t *out_desc)
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env,
+ axis2_conf_ctx_t * conf_ctx,
+ axis2_transport_out_desc_t * out_desc)
{
axutil_param_t *version_param = NULL;
axis2_char_t *version = NULL;
@@ -432,9 +435,10 @@
AXIS2_PARAM_CHECK(env->error, conf_ctx, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, out_desc, AXIS2_FAILURE);
- version_param = axutil_param_container_get_param(
- axis2_transport_out_desc_param_container(out_desc, env), env,
- AXIS2_HTTP_PROTOCOL_VERSION);
+ version_param =
+ axutil_param_container_get_param
+ (axis2_transport_out_desc_param_container(out_desc, env), env,
+ AXIS2_HTTP_PROTOCOL_VERSION);
if (version_param)
{
version = axutil_param_get_value(version_param, env);
@@ -448,18 +452,20 @@
if (AXIS2_INTF_TO_IMPL(transport_sender)->http_version)
{
AXIS2_FREE(env->allocator,
- AXIS2_INTF_TO_IMPL(transport_sender)->http_version);
+ AXIS2_INTF_TO_IMPL(transport_sender)->http_version);
}
- AXIS2_INTF_TO_IMPL(transport_sender)->http_version = axutil_strdup(env, version);
- encoding_param = axutil_param_container_get_param(
- axis2_transport_out_desc_param_container(out_desc, env), env,
- AXIS2_HTTP_HEADER_TRANSFER_ENCODING);
+ AXIS2_INTF_TO_IMPL(transport_sender)->http_version =
+ axutil_strdup(env, version);
+ encoding_param =
+ axutil_param_container_get_param
+ (axis2_transport_out_desc_param_container(out_desc, env), env,
+ AXIS2_HTTP_HEADER_TRANSFER_ENCODING);
if (encoding_param)
{
encoding = axutil_param_get_value(encoding_param, env);
}
if (encoding && 0 == axutil_strcmp(encoding,
- AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
+ AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
{
AXIS2_INTF_TO_IMPL(transport_sender)->chunked = AXIS2_TRUE;
}
@@ -473,23 +479,24 @@
if (AXIS2_INTF_TO_IMPL(transport_sender)->http_version)
{
AXIS2_FREE(env->allocator,
- AXIS2_INTF_TO_IMPL(transport_sender)->http_version);
+ AXIS2_INTF_TO_IMPL(transport_sender)->http_version);
}
- AXIS2_INTF_TO_IMPL(transport_sender)->http_version = axutil_strdup(env, version);
+ AXIS2_INTF_TO_IMPL(transport_sender)->http_version =
+ axutil_strdup(env, version);
AXIS2_INTF_TO_IMPL(transport_sender)->chunked = AXIS2_FALSE;
}
}
else
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NULL_HTTP_VERSION,
- AXIS2_FAILURE);
+ AXIS2_FAILURE);
return AXIS2_FAILURE;
}
-
- temp_param = axutil_param_container_get_param(
- axis2_transport_out_desc_param_container(out_desc, env), env,
- AXIS2_HTTP_SO_TIMEOUT);
+ temp_param =
+ axutil_param_container_get_param
+ (axis2_transport_out_desc_param_container(out_desc, env), env,
+ AXIS2_HTTP_SO_TIMEOUT);
if (temp_param)
{
temp = axutil_param_get_value(temp_param, env);
@@ -498,9 +505,11 @@
{
AXIS2_INTF_TO_IMPL(transport_sender)->so_timeout = AXIS2_ATOI(temp);
}
- temp = (axis2_char_t *)axutil_param_container_get_param(
- axis2_transport_out_desc_param_container(out_desc, env), env,
- AXIS2_HTTP_CONNECTION_TIMEOUT);
+ temp =
+ (axis2_char_t *)
+ axutil_param_container_get_param
+ (axis2_transport_out_desc_param_container(out_desc, env), env,
+ AXIS2_HTTP_CONNECTION_TIMEOUT);
if (temp_param)
{
temp = axutil_param_get_value(temp_param, env);
@@ -516,20 +525,21 @@
axis2_status_t AXIS2_CALL
axis2_http_transport_sender_write_message(
- axis2_transport_sender_t *transport_sender,
- const axutil_env_t *env,
- axis2_msg_ctx_t *msg_ctx,
- axis2_endpoint_ref_t *epr,
- axiom_soap_envelope_t *out,
- axiom_output_t *om_output)
+ axis2_transport_sender_t * transport_sender,
+ const axutil_env_t * env,
+ axis2_msg_ctx_t * msg_ctx,
+ axis2_endpoint_ref_t * epr,
+ axiom_soap_envelope_t * out,
+ axiom_output_t * om_output)
{
const axis2_char_t *soap_action = NULL;
const axis2_char_t *url = NULL;
axis2_http_sender_t *sender = NULL;
axis2_status_t status = AXIS2_FAILURE;
- const axis2_char_t *soap_ns_uri = NULL;
- axiom_soap_envelope_t *response_envelope = NULL;
- axis2_op_t *op = NULL;
+ const axis2_char_t *soap_ns_uri = NULL;
+ axiom_soap_envelope_t *response_envelope = NULL;
+ axis2_op_t *op = NULL;
+
/* axis2_http_client_t *client = NULL; */
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -538,59 +548,72 @@
AXIS2_PARAM_CHECK(env->error, om_output, AXIS2_FAILURE);
url = axis2_endpoint_ref_get_address(epr, env);
-
- soap_action = axutil_string_get_buffer( axis2_msg_ctx_get_soap_action(msg_ctx, env), env);
-
- if (! soap_action)
+
+ soap_action =
+ axutil_string_get_buffer(axis2_msg_ctx_get_soap_action(msg_ctx, env),
+ env);
+
+ if (!soap_action)
{
soap_action = "";
}
- sender = axis2_http_sender_create(env);
+ sender = axis2_http_sender_create(env);
+
+ if (!sender)
+ {
+ return AXIS2_FAILURE;
+ }
- if (! sender)
- {
- return AXIS2_FAILURE;
- }
-
- AXIS2_HTTP_SENDER_SET_CHUNKED(sender, env,
- AXIS2_INTF_TO_IMPL(transport_sender)->chunked);
- AXIS2_HTTP_SENDER_SET_OM_OUTPUT(sender, env, om_output);
- AXIOM_SENDER_SET_HTTP_VERSION(sender, env,
- AXIS2_INTF_TO_IMPL(transport_sender)->http_version);
- status = AXIS2_HTTP_SENDER_SEND(sender, env, msg_ctx, out, url, soap_action);
+ AXIS2_HTTP_SENDER_SET_CHUNKED(sender, env,
+ AXIS2_INTF_TO_IMPL(transport_sender)->
+ chunked);
+ AXIS2_HTTP_SENDER_SET_OM_OUTPUT(sender, env, om_output);
+ AXIOM_SENDER_SET_HTTP_VERSION(sender, env,
+ AXIS2_INTF_TO_IMPL(transport_sender)->
+ http_version);
+ status =
+ AXIS2_HTTP_SENDER_SEND(sender, env, msg_ctx, out, url, soap_action);
- AXIS2_HTTP_SENDER_FREE(sender, env);
- sender = NULL;
+ AXIS2_HTTP_SENDER_FREE(sender, env);
+ sender = NULL;
- op = axis2_msg_ctx_get_op(msg_ctx, env);
+ op = axis2_msg_ctx_get_op(msg_ctx, env);
if (op)
{
/* handle one way case */
const axis2_char_t *mep = axis2_op_get_msg_exchange_pattern(op, env);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "OP name axutil_qname_get_localpart = %s",
- mep);
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "OP name axutil_qname_get_localpart = %s", mep);
if (axutil_strcmp(mep, AXIS2_MEP_URI_OUT_ONLY) == 0 ||
axutil_strcmp(mep, AXIS2_MEP_URI_ROBUST_OUT_ONLY) == 0 ||
axutil_strcmp(mep, AXIS2_MEP_URI_IN_ONLY) == 0)
{
return status;
}
- else
- {
- soap_ns_uri = axis2_msg_ctx_get_is_soap_11(msg_ctx, env) ?
- AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI : AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
- response_envelope = axis2_http_transport_utils_create_soap_msg(env,
- msg_ctx, soap_ns_uri);
+ else
+ {
+ soap_ns_uri = axis2_msg_ctx_get_is_soap_11(msg_ctx, env) ?
+ AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI :
+ AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
+ response_envelope =
+ axis2_http_transport_utils_create_soap_msg(env, msg_ctx,
+ soap_ns_uri);
if (response_envelope)
- axis2_msg_ctx_set_response_soap_envelope (msg_ctx, env, response_envelope);
- }
+ axis2_msg_ctx_set_response_soap_envelope(msg_ctx, env,
+ response_envelope);
+ }
}
/* Free the client */
+
/* if (client) */
+
/* { */
+
/* axis2_http_client_free(client, env); */
+
/* client = NULL; */
+
/* } */
return status;
@@ -607,12 +630,12 @@
AXIS2_EXPORT int
#ifndef AXIS2_STATIC_DEPLOY
-axis2_get_instance(
+ axis2_get_instance(
#else
axis2_http_transport_sender_get_instance(
#endif
struct axis2_transport_sender **inst,
- const axutil_env_t *env)
+ const axutil_env_t * env)
{
*inst = axis2_http_transport_sender_create(env);
if (!(*inst))
@@ -625,12 +648,12 @@
AXIS2_EXPORT int
#ifndef AXIS2_STATIC_DEPLOY
-axis2_remove_instance(
+ axis2_remove_instance(
#else
axis2_http_transport_sender_remove_instance(
#endif
- axis2_transport_sender_t *inst,
- const axutil_env_t *env)
+ axis2_transport_sender_t * inst,
+ const axutil_env_t * env)
{
if (inst)
{
@@ -638,6 +661,3 @@
}
return AXIS2_SUCCESS;
}
-
-
-
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/axis2_libcurl.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/axis2_libcurl.c?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/axis2_libcurl.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/axis2_libcurl.c Fri Sep 28 02:52:58 2007
@@ -24,99 +24,93 @@
typedef struct axis2_libcurl
{
- axis2_char_t *memory;
- axutil_array_list_t *alist;
- unsigned int size;
- const axutil_env_t *env;
+ axis2_char_t *memory;
+ axutil_array_list_t *alist;
+ unsigned int size;
+ const axutil_env_t *env;
} axis2_libcurl_t;
-size_t
-axis2_libcurl_write_memory_callback(
- void *ptr,
- size_t size,
- size_t nmemb,
- void *data);
-
-size_t
-axis2_libcurl_header_callback(
- void *ptr,
- size_t size,
- size_t nmemb,
- void *data);
-
-axis2_libcurl_t *
-axis2_libcurl_create (
- const axutil_env_t *env);
-
-void
-axis2_libcurl_free (
- void *curl,
- const axutil_env_t *env);
-
-
+size_t axis2_libcurl_write_memory_callback(
+ void *ptr,
+ size_t size,
+ size_t nmemb,
+ void *data);
+
+size_t axis2_libcurl_header_callback(
+ void *ptr,
+ size_t size,
+ size_t nmemb,
+ void *data);
+
+axis2_libcurl_t *axis2_libcurl_create(
+ const axutil_env_t * env);
+
+void axis2_libcurl_free(
+ void *curl,
+ const axutil_env_t * env);
axis2_status_t AXIS2_CALL
-axis2_libcurl_send (
- axiom_output_t *om_output,
- const axutil_env_t *env,
- axis2_msg_ctx_t *msg_ctx,
- axiom_soap_envelope_t *out,
- const axis2_char_t *str_url,
- const axis2_char_t *soap_action)
+axis2_libcurl_send(
+ axiom_output_t * om_output,
+ const axutil_env_t * env,
+ axis2_msg_ctx_t * msg_ctx,
+ axiom_soap_envelope_t * out,
+ const axis2_char_t * str_url,
+ const axis2_char_t * soap_action)
{
- struct curl_slist *headers = NULL;
- axiom_soap_body_t *soap_body;
- axis2_bool_t is_soap = AXIS2_TRUE;
- axis2_bool_t send_via_get = AXIS2_FALSE;
- axis2_bool_t doing_mtom = AXIS2_FALSE;
- axiom_node_t *body_node = NULL;
- axiom_node_t *data_out = NULL;
- axutil_property_t *method = NULL;
- axis2_char_t *method_value = NULL;
- axiom_xml_writer_t *xml_writer = NULL;
- axis2_char_t *buffer = NULL;
- unsigned int buffer_size = 0;
- axis2_char_t *content_type;
- axis2_char_t *content_len = AXIS2_HTTP_HEADER_CONTENT_LENGTH_;
- const axis2_char_t *char_set_enc = NULL;
- axis2_char_t *content = AXIS2_HTTP_HEADER_CONTENT_TYPE_;
- axis2_char_t *soap_action_header = AXIS2_HTTP_HEADER_SOAP_ACTION_;
- axis2_libcurl_t *data;
- axutil_stream_t *in_stream;
- axutil_property_t *trans_in_property;
- axutil_string_t *char_set_enc_str;
+ struct curl_slist *headers = NULL;
+ axiom_soap_body_t *soap_body;
+ axis2_bool_t is_soap = AXIS2_TRUE;
+ axis2_bool_t send_via_get = AXIS2_FALSE;
+ axis2_bool_t doing_mtom = AXIS2_FALSE;
+ axiom_node_t *body_node = NULL;
+ axiom_node_t *data_out = NULL;
+ axutil_property_t *method = NULL;
+ axis2_char_t *method_value = NULL;
+ axiom_xml_writer_t *xml_writer = NULL;
+ axis2_char_t *buffer = NULL;
+ unsigned int buffer_size = 0;
+ axis2_char_t *content_type;
+ axis2_char_t *content_len = AXIS2_HTTP_HEADER_CONTENT_LENGTH_;
+ const axis2_char_t *char_set_enc = NULL;
+ axis2_char_t *content = AXIS2_HTTP_HEADER_CONTENT_TYPE_;
+ axis2_char_t *soap_action_header = AXIS2_HTTP_HEADER_SOAP_ACTION_;
+ axis2_libcurl_t *data;
+ axutil_stream_t *in_stream;
+ axutil_property_t *trans_in_property;
+ axutil_string_t *char_set_enc_str;
axis2_byte_t *output_stream = NULL;
int output_stream_size = 0;
- data = axis2_libcurl_create (env);
+ data = axis2_libcurl_create(env);
if (!ref)
{
- handler = curl_easy_init ();
- ref ++;
+ handler = curl_easy_init();
+ ref++;
}
else
{
- curl_easy_reset (handler);
+ curl_easy_reset(handler);
}
- headers = curl_slist_append (headers, AXIS2_HTTP_HEADER_USER_AGENT_AXIS2C);
- headers = curl_slist_append (headers, AXIS2_HTTP_HEADER_ACCEPT_);
- headers = curl_slist_append (headers, AXIS2_HTTP_HEADER_EXPECT_);
-
- if (AXIS2_TRUE == axis2_msg_ctx_get_doing_rest(msg_ctx, env))
- is_soap = AXIS2_FALSE;
- else
- is_soap = AXIS2_TRUE;
-
- if (!is_soap)
- {
- soap_body = axiom_soap_envelope_get_body(out, env);
+ headers = curl_slist_append(headers, AXIS2_HTTP_HEADER_USER_AGENT_AXIS2C);
+ headers = curl_slist_append(headers, AXIS2_HTTP_HEADER_ACCEPT_);
+ headers = curl_slist_append(headers, AXIS2_HTTP_HEADER_EXPECT_);
+
+ if (AXIS2_TRUE == axis2_msg_ctx_get_doing_rest(msg_ctx, env))
+ is_soap = AXIS2_FALSE;
+ else
+ is_soap = AXIS2_TRUE;
+
+ if (!is_soap)
+ {
+ soap_body = axiom_soap_envelope_get_body(out, env);
if (!soap_body)
{
AXIS2_ERROR_SET(env->error,
- AXIS2_ERROR_SOAP_ENVELOPE_OR_SOAP_BODY_NULL,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SOAP_ENVELOPE_OR_SOAP_BODY_NULL,
+ AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s",
- AXIS2_ERROR_GET_MESSAGE(env->error));
+ AXIS2_ERROR_GET_MESSAGE(env->error));
return AXIS2_FAILURE;
}
body_node = axiom_soap_body_get_base_node(soap_body, env);
@@ -126,245 +120,293 @@
}
data_out = axiom_node_get_first_element(body_node, env);
- method = (axutil_property_t *) axis2_msg_ctx_get_property(msg_ctx, env,
- AXIS2_HTTP_METHOD);
+ method = (axutil_property_t *) axis2_msg_ctx_get_property(msg_ctx, env,
+ AXIS2_HTTP_METHOD);
+
+ if (method)
+ {
+ method_value =
+ (axis2_char_t *) axutil_property_get_value(method, env);
+ }
+ /* The default is POST */
+ if (method_value && 0 == axutil_strcmp(method_value, AXIS2_HTTP_GET))
+ {
+ send_via_get = AXIS2_TRUE;
+ }
+ }
+
+ if (!send_via_get)
+ {
+ xml_writer = axiom_output_get_xml_writer(om_output, env);
+
+ char_set_enc_str = axis2_msg_ctx_get_charset_encoding(msg_ctx, env);
+
+ if (!char_set_enc_str)
+ {
+ char_set_enc = AXIS2_DEFAULT_CHAR_SET_ENCODING;
+ }
+ else
+ {
+ char_set_enc = axutil_string_get_buffer(char_set_enc_str, env);
+ }
+
+ if (is_soap)
+ {
+ doing_mtom = axis2_msg_ctx_get_doing_mtom(msg_ctx, env);
- if (method)
+ axiom_output_set_do_optimize(om_output, env, doing_mtom);
+ axiom_soap_envelope_serialize(out, env, om_output, AXIS2_FALSE);
+ if (AXIS2_TRUE == axis2_msg_ctx_get_is_soap_11(msg_ctx, env))
+ {
+ if ('\"' != *soap_action)
+ {
+ axis2_char_t *tmp_soap_action = NULL;
+ tmp_soap_action =
+ AXIS2_MALLOC(env->allocator,
+ (axutil_strlen(soap_action) +
+ 5) * sizeof(axis2_char_t));
+ sprintf(tmp_soap_action, "\"%s\"", soap_action);
+ headers = curl_slist_append(headers,
+ axutil_stracat(env,
+ soap_action_header,
+ tmp_soap_action));
+ AXIS2_FREE(env->allocator, tmp_soap_action);
+ }
+ else
+ {
+ headers = curl_slist_append(headers,
+ axutil_stracat(env,
+ soap_action_header,
+ soap_action));
+ }
+ }
+
+ if (doing_mtom)
+ {
+ axiom_output_flush(om_output, env, &output_stream,
+ &output_stream_size);
+ content_type =
+ (axis2_char_t *) axiom_output_get_content_type(om_output,
+ env);
+ if (AXIS2_TRUE != axis2_msg_ctx_get_is_soap_11(msg_ctx, env))
+ {
+ /* handle SOAP action for SOAP 1.2 case */
+ if (axutil_strcmp(soap_action, ""))
+ {
+ axis2_char_t *temp_content_type = NULL;
+ temp_content_type =
+ axutil_stracat(env, content_type, ";action=");
+ content_type = temp_content_type;
+ temp_content_type =
+ axutil_stracat(env, content_type, soap_action);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ }
+ }
+ }
+ else if (AXIS2_TRUE == axis2_msg_ctx_get_is_soap_11(msg_ctx, env))
+ {
+ axis2_char_t *temp_content_type = NULL;
+ content_type =
+ (axis2_char_t *) AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML;
+ content_type = axutil_stracat(env, content_type, ";charset=");
+ temp_content_type =
+ axutil_stracat(env, content_type, char_set_enc);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ }
+ else
+ {
+ axis2_char_t *temp_content_type = NULL;
+ content_type =
+ (axis2_char_t *) AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP;
+ content_type = axutil_stracat(env, content_type, ";charset=");
+ temp_content_type =
+ axutil_stracat(env, content_type, char_set_enc);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ if (axutil_strcmp(soap_action, ""))
+ {
+ temp_content_type =
+ axutil_stracat(env, content_type, ";action=");
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ temp_content_type =
+ axutil_stracat(env, content_type, soap_action);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ }
+ temp_content_type = axutil_stracat(env, content_type, ";");
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ }
+ }
+ else
{
- method_value = (axis2_char_t *) axutil_property_get_value (method, env);
+ axutil_property_t *content_type_property = NULL;
+ axutil_hash_t *content_type_hash = NULL;
+ axis2_char_t *content_type_value = NULL;
+
+ axiom_node_serialize(data_out, env, om_output);
+ content_type_property =
+ (axutil_property_t *) axis2_msg_ctx_get_property(msg_ctx, env,
+ AXIS2_USER_DEFINED_HTTP_HEADER_CONTENT_TYPE);
+
+ if (content_type_property)
+ {
+ content_type_hash =
+ (axutil_hash_t *)
+ axutil_property_get_value(content_type_property, env);
+ if (content_type_hash)
+ content_type_value =
+ (char *) axutil_hash_get(content_type_hash,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_HASH_KEY_STRING);
+ }
+ if (content_type_value)
+ content_type = content_type_value;
+ else
+ content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML;
+
}
- /* The default is POST */
- if (method_value && 0 == axutil_strcmp(method_value, AXIS2_HTTP_GET))
- {
- send_via_get = AXIS2_TRUE;
- }
- }
-
- if (!send_via_get)
- {
- xml_writer = axiom_output_get_xml_writer(om_output, env);
-
- char_set_enc_str = axis2_msg_ctx_get_charset_encoding(msg_ctx, env);
-
- if (!char_set_enc_str)
- {
- char_set_enc = AXIS2_DEFAULT_CHAR_SET_ENCODING;
- }
- else
- {
- char_set_enc = axutil_string_get_buffer(char_set_enc_str, env);
- }
-
- if (is_soap)
- {
- doing_mtom = axis2_msg_ctx_get_doing_mtom(msg_ctx, env);
-
- axiom_output_set_do_optimize(om_output, env,
- doing_mtom);
- axiom_soap_envelope_serialize(out, env, om_output,
- AXIS2_FALSE);
- if (AXIS2_TRUE == axis2_msg_ctx_get_is_soap_11(msg_ctx, env))
- {
- if ('\"' != *soap_action)
- {
- axis2_char_t *tmp_soap_action = NULL;
- tmp_soap_action = AXIS2_MALLOC(env->allocator, (
- axutil_strlen(soap_action) + 5) * sizeof(axis2_char_t));
- sprintf(tmp_soap_action, "\"%s\"", soap_action);
- headers = curl_slist_append (headers,
- axutil_stracat (env, soap_action_header, tmp_soap_action));
- AXIS2_FREE(env->allocator, tmp_soap_action);
- }
- else
- {
- headers = curl_slist_append (headers,
- axutil_stracat (env, soap_action_header, soap_action));
- }
- }
-
- if (doing_mtom)
- {
- axiom_output_flush(om_output, env, &output_stream,
- &output_stream_size);
- content_type = (axis2_char_t *)axiom_output_get_content_type(om_output,
- env);
- if (AXIS2_TRUE != axis2_msg_ctx_get_is_soap_11(msg_ctx, env))
- {
- /* handle SOAP action for SOAP 1.2 case */
- if (axutil_strcmp(soap_action, ""))
- {
- axis2_char_t *temp_content_type = NULL;
- temp_content_type = axutil_stracat(env, content_type, ";action=");
- content_type = temp_content_type;
- temp_content_type = axutil_stracat(env, content_type, soap_action);
- AXIS2_FREE(env->allocator, content_type);
- content_type = temp_content_type;
- }
- }
- }
- else if (AXIS2_TRUE == axis2_msg_ctx_get_is_soap_11(msg_ctx, env))
- {
- axis2_char_t *temp_content_type = NULL;
- content_type = (axis2_char_t *)AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML;
- content_type = axutil_stracat(env, content_type, ";charset=");
- temp_content_type = axutil_stracat(env, content_type, char_set_enc);
- AXIS2_FREE(env->allocator, content_type);
- content_type = temp_content_type;
- }
- else
- {
- axis2_char_t *temp_content_type = NULL;
- content_type = (axis2_char_t *)AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP;
- content_type = axutil_stracat(env, content_type, ";charset=");
- temp_content_type = axutil_stracat(env, content_type, char_set_enc);
- AXIS2_FREE(env->allocator, content_type);
- content_type = temp_content_type;
- if (axutil_strcmp(soap_action, ""))
- {
- temp_content_type = axutil_stracat(env, content_type, ";action=");
- AXIS2_FREE(env->allocator, content_type);
- content_type = temp_content_type;
- temp_content_type = axutil_stracat(env, content_type, soap_action);
- AXIS2_FREE(env->allocator, content_type);
- content_type = temp_content_type;
- }
- temp_content_type = axutil_stracat(env, content_type, ";");
- AXIS2_FREE(env->allocator, content_type);
- content_type = temp_content_type;
- }
- }
- else
- {
- axutil_property_t *content_type_property = NULL;
- axutil_hash_t *content_type_hash = NULL;
- axis2_char_t *content_type_value = NULL;
-
- axiom_node_serialize(data_out, env, om_output);
- content_type_property = (axutil_property_t *) axis2_msg_ctx_get_property(
- msg_ctx, env,
- AXIS2_USER_DEFINED_HTTP_HEADER_CONTENT_TYPE);
-
- if (content_type_property)
- {
- content_type_hash = (axutil_hash_t *) axutil_property_get_value (content_type_property, env);
- if (content_type_hash)
- content_type_value = (char *) axutil_hash_get (content_type_hash,
- AXIS2_HTTP_HEADER_CONTENT_TYPE,
- AXIS2_HASH_KEY_STRING);
- }
- if (content_type_value)
- content_type = content_type_value;
- else
- content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML;
-
- }
-
- buffer = axiom_xml_writer_get_xml(xml_writer, env);
- if (!doing_mtom)
- {
- buffer_size = axiom_xml_writer_get_xml_size(xml_writer, env);
- }
- else
- buffer_size = output_stream_size;
- {
- char tmp_buf[10];
- sprintf (tmp_buf, "%d", buffer_size);
- headers = curl_slist_append (headers, axutil_stracat (env, content_len, tmp_buf));
- headers = curl_slist_append (headers, axutil_stracat (env, content,content_type));
- }
- if (!doing_mtom)
- {
- curl_easy_setopt (handler, CURLOPT_POSTFIELDSIZE, buffer_size);
- curl_easy_setopt (handler, CURLOPT_POSTFIELDS, buffer);
- }
- else
- {
- curl_easy_setopt (handler, CURLOPT_POSTFIELDSIZE, output_stream_size);
- curl_easy_setopt (handler, CURLOPT_POSTFIELDS, output_stream);
- }
- curl_easy_setopt (handler, CURLOPT_URL, str_url);
- }
- else
- {
- axis2_char_t *request_param;
- axis2_char_t *url_encode;
- request_param = (axis2_char_t *) axis2_http_sender_get_param_string( NULL, env, msg_ctx);
- url_encode = axutil_strcat(env, str_url, "?",
- request_param, NULL);
- curl_easy_setopt (handler, CURLOPT_HTTPGET, 1);
- curl_easy_setopt (handler, CURLOPT_URL, url_encode);
- }
+
+ buffer = axiom_xml_writer_get_xml(xml_writer, env);
+ if (!doing_mtom)
+ {
+ buffer_size = axiom_xml_writer_get_xml_size(xml_writer, env);
+ }
+ else
+ buffer_size = output_stream_size;
+ {
+ char tmp_buf[10];
+ sprintf(tmp_buf, "%d", buffer_size);
+ headers =
+ curl_slist_append(headers,
+ axutil_stracat(env, content_len, tmp_buf));
+ headers =
+ curl_slist_append(headers,
+ axutil_stracat(env, content, content_type));
+ }
+ if (!doing_mtom)
+ {
+ curl_easy_setopt(handler, CURLOPT_POSTFIELDSIZE, buffer_size);
+ curl_easy_setopt(handler, CURLOPT_POSTFIELDS, buffer);
+ }
+ else
+ {
+ curl_easy_setopt(handler, CURLOPT_POSTFIELDSIZE,
+ output_stream_size);
+ curl_easy_setopt(handler, CURLOPT_POSTFIELDS, output_stream);
+ }
+ curl_easy_setopt(handler, CURLOPT_URL, str_url);
+ }
+ else
+ {
+ axis2_char_t *request_param;
+ axis2_char_t *url_encode;
+ request_param =
+ (axis2_char_t *) axis2_http_sender_get_param_string(NULL, env,
+ msg_ctx);
+ url_encode = axutil_strcat(env, str_url, "?", request_param, NULL);
+ curl_easy_setopt(handler, CURLOPT_HTTPGET, 1);
+ curl_easy_setopt(handler, CURLOPT_URL, url_encode);
+ }
/* curl_easy_setopt (handler, CURLOPT_VERBOSE, 1); */
- curl_easy_setopt (handler, CURLOPT_HTTPHEADER, headers);
- curl_easy_setopt (handler, CURLOPT_WRITEFUNCTION, axis2_libcurl_write_memory_callback);
- curl_easy_setopt (handler, CURLOPT_WRITEDATA, data);
+ curl_easy_setopt(handler, CURLOPT_HTTPHEADER, headers);
+ curl_easy_setopt(handler, CURLOPT_WRITEFUNCTION,
+ axis2_libcurl_write_memory_callback);
+ curl_easy_setopt(handler, CURLOPT_WRITEDATA, data);
+
/* curl_easy_setopt (handler, CURLOPT_HEADERFUNCTION, axis2_libcurl_header_callback); */
+
/* curl_easy_setopt (handler, CURLOPT_WRITEHEADER, header); */
- curl_easy_perform (handler);
+ curl_easy_perform(handler);
+
/* curl_slist_free_all (headers); */
+
/* curl_easy_cleanup (handler); */
- in_stream = axutil_stream_create_libcurl (env, data->memory, data->size);
+ in_stream = axutil_stream_create_libcurl(env, data->memory, data->size);
trans_in_property = axutil_property_create(env);
axutil_property_set_scope(trans_in_property, env, AXIS2_SCOPE_REQUEST);
- axutil_property_set_free_func(trans_in_property, env, axutil_stream_free_void_arg);
+ axutil_property_set_free_func(trans_in_property, env,
+ axutil_stream_free_void_arg);
axutil_property_set_value(trans_in_property, env, in_stream);
- axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_TRANSPORT_IN, trans_in_property);
- return AXIS2_SUCCESS;
+ axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_TRANSPORT_IN,
+ trans_in_property);
+ return AXIS2_SUCCESS;
}
size_t
-axis2_libcurl_write_memory_callback(void *ptr, size_t size, size_t nmemb, void *data)
+axis2_libcurl_write_memory_callback(
+ void *ptr,
+ size_t size,
+ size_t nmemb,
+ void *data)
{
- size_t realsize = size * nmemb;
- axis2_libcurl_t *mem = (axis2_libcurl_t *)data;
- axis2_char_t *buffer = (axis2_char_t *) AXIS2_MALLOC (mem->env->allocator, mem->size + realsize + 1);
- if (buffer)
- {
- if (mem->size)
- memcpy (&(buffer[0]), mem->memory, mem->size);
-
- memcpy(&(buffer[mem->size]), ptr, realsize);
- mem->size += realsize;
- buffer[mem->size] = 0;
- mem->memory = buffer;
- }
- return realsize;
+ size_t realsize = size * nmemb;
+ axis2_libcurl_t *mem = (axis2_libcurl_t *) data;
+ axis2_char_t *buffer =
+ (axis2_char_t *) AXIS2_MALLOC(mem->env->allocator,
+ mem->size + realsize + 1);
+ if (buffer)
+ {
+ if (mem->size)
+ memcpy(&(buffer[0]), mem->memory, mem->size);
+
+ memcpy(&(buffer[mem->size]), ptr, realsize);
+ mem->size += realsize;
+ buffer[mem->size] = 0;
+ mem->memory = buffer;
+ }
+ return realsize;
}
size_t
-axis2_libcurl_header_callback(void *ptr, size_t size, size_t nmemb, void *data)
+axis2_libcurl_header_callback(
+ void *ptr,
+ size_t size,
+ size_t nmemb,
+ void *data)
{
- size_t realsize = size * nmemb;
- axis2_libcurl_t *mem = (axis2_libcurl_t *)data;
- mem->memory = AXIS2_MALLOC (mem->env->allocator, realsize + 1);
- mem->size = 0;
- if (mem->memory)
- {
- memcpy(&(mem->memory[mem->size]), ptr, realsize);
- mem->size += realsize;
- mem->memory[mem->size] = 0;
- axutil_array_list_add (mem->alist, mem->env, axutil_strdup (mem->env, mem->memory));
- }
- return realsize;
+ size_t realsize = size * nmemb;
+ axis2_libcurl_t *mem = (axis2_libcurl_t *) data;
+ mem->memory = AXIS2_MALLOC(mem->env->allocator, realsize + 1);
+ mem->size = 0;
+ if (mem->memory)
+ {
+ memcpy(&(mem->memory[mem->size]), ptr, realsize);
+ mem->size += realsize;
+ mem->memory[mem->size] = 0;
+ axutil_array_list_add(mem->alist, mem->env,
+ axutil_strdup(mem->env, mem->memory));
+ }
+ return realsize;
}
axis2_libcurl_t *
-axis2_libcurl_create (const axutil_env_t *env)
+axis2_libcurl_create(
+ const axutil_env_t * env)
{
- axis2_libcurl_t *curl = NULL;
- curl = (axis2_libcurl_t *) AXIS2_MALLOC (env->allocator, sizeof (axis2_libcurl_t));
- curl->size = 0;
- curl->alist = axutil_array_list_create (env, 7);
- curl->env = env;
- return curl;
+ axis2_libcurl_t *curl = NULL;
+ curl =
+ (axis2_libcurl_t *) AXIS2_MALLOC(env->allocator,
+ sizeof(axis2_libcurl_t));
+ curl->size = 0;
+ curl->alist = axutil_array_list_create(env, 7);
+ curl->env = env;
+ return curl;
}
void
-axis2_libcurl_free (void *curl, const axutil_env_t *env)
+axis2_libcurl_free(
+ void *curl,
+ const axutil_env_t * env)
{
- AXIS2_FREE (env->allocator, curl);
+ AXIS2_FREE(env->allocator, curl);
+
/* curl_slist_free_all (headers); */
+
/* curl_easy_cleanup (handler); */
}
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/axis2_libcurl.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/axis2_libcurl.h?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/axis2_libcurl.h (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/axis2_libcurl.h Fri Sep 28 02:52:58 2007
@@ -12,13 +12,12 @@
#include <axiom.h>
axis2_status_t AXIS2_CALL
-axis2_libcurl_send (
- axiom_output_t *om_output,
- const axutil_env_t *env,
- axis2_msg_ctx_t *msg_ctx,
- axiom_soap_envelope_t *out,
- const axis2_char_t *str_url,
- const axis2_char_t *soap_action);
+axis2_libcurl_send(
+ axiom_output_t * om_output,
+ const axutil_env_t * env,
+ axis2_msg_ctx_t * msg_ctx,
+ axiom_soap_envelope_t * out,
+ const axis2_char_t * str_url,
+ const axis2_char_t * soap_action);
-
-#endif /* AXIS2_LIBCURL_H */
+#endif /* AXIS2_LIBCURL_H */
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/libcurl_stream.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/libcurl_stream.c?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/libcurl_stream.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/libcurl_stream.c Fri Sep 28 02:52:58 2007
@@ -6,75 +6,71 @@
axutil_stream_t stream;
axutil_stream_type_t stream_type;
axis2_char_t *buffer;
- int size;
- int read_len;
+ int size;
+ int read_len;
}
libcurl_stream_impl_t;
#define AXIS2_INTF_TO_IMPL(stream) ((libcurl_stream_impl_t *)(stream))
/********************************Function headers******************************/
-void AXIS2_CALL
-libcurl_stream_free(
- axutil_stream_t *stream,
- const axutil_env_t *env);
-
-axutil_stream_type_t AXIS2_CALL
-libcurl_stream_get_type(
- axutil_stream_t *stream,
- const axutil_env_t *env);
-
-int AXIS2_CALL
-libcurl_stream_write(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+void AXIS2_CALL libcurl_stream_free(
+ axutil_stream_t * stream,
+ const axutil_env_t * env);
+
+axutil_stream_type_t AXIS2_CALL libcurl_stream_get_type(
+ axutil_stream_t * stream,
+ const axutil_env_t * env);
+
+int AXIS2_CALL libcurl_stream_write(
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
const void *buffer,
size_t count);
-int AXIS2_CALL
-libcurl_stream_read(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+int AXIS2_CALL libcurl_stream_read(
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
void *buffer,
size_t count);
-int AXIS2_CALL
-libcurl_stream_skip(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+int AXIS2_CALL libcurl_stream_skip(
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
int count);
-int AXIS2_CALL
-libcurl_stream_get_char(
- axutil_stream_t *stream,
- const axutil_env_t *env);
+int AXIS2_CALL libcurl_stream_get_char(
+ axutil_stream_t * stream,
+ const axutil_env_t * env);
/************************* End of function headers ****************************/
+
/*
* Internal function. Not exposed to outside
*/
-AXIS2_EXTERN axutil_stream_t * AXIS2_CALL
+AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axutil_stream_create_libcurl(
- const axutil_env_t *env,
- axis2_char_t *buffer,
- unsigned int size)
+ const axutil_env_t * env,
+ axis2_char_t * buffer,
+ unsigned int size)
{
libcurl_stream_impl_t *stream_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
AXIS2_PARAM_CHECK(env->error, buffer, NULL);
- stream_impl = (libcurl_stream_impl_t *)AXIS2_MALLOC(
- env->allocator, sizeof(libcurl_stream_impl_t));
+ stream_impl =
+ (libcurl_stream_impl_t *) AXIS2_MALLOC(env->allocator,
+ sizeof(libcurl_stream_impl_t));
- if (! stream_impl)
+ if (!stream_impl)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
stream_impl->buffer = buffer;
- stream_impl->size = size;
- stream_impl->read_len = 0;
+ stream_impl->size = size;
+ stream_impl->read_len = 0;
stream_impl->stream_type = AXIS2_STREAM_MANAGED;
axutil_stream_set_read(&(stream_impl->stream), env, libcurl_stream_read);
@@ -84,11 +80,10 @@
return &(stream_impl->stream);
}
-
void AXIS2_CALL
libcurl_stream_free(
- axutil_stream_t *stream,
- const axutil_env_t *env)
+ axutil_stream_t * stream,
+ const axutil_env_t * env)
{
libcurl_stream_impl_t *stream_impl = NULL;
AXIS2_ENV_CHECK(env, void);
@@ -101,77 +96,78 @@
int AXIS2_CALL
libcurl_stream_read(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
void *buffer,
size_t count)
{
libcurl_stream_impl_t *stream_impl = NULL;
- int read = 0;
- int unread = 0;
+ int read = 0;
+ int unread = 0;
AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
stream_impl = AXIS2_INTF_TO_IMPL(stream);
- if (stream_impl->size >= count)
- {
- if (buffer && (stream_impl->size > stream_impl->read_len))
- {
- unread = (stream_impl->size - stream_impl->read_len);
- if ( unread > count)
- {
- memcpy (buffer, &stream_impl->buffer[stream_impl->read_len], count);
- read = count;
- stream_impl->read_len += read;
- }
- else
- {
- memcpy (buffer, &stream_impl->buffer[stream_impl->read_len], unread);
- read = unread;
- stream_impl->read_len += read;
- }
- }
- else
- read = 0;
- }
- else
- {
- if (buffer && (stream_impl->size > stream_impl->read_len))
- {
- memcpy (buffer, &stream_impl->buffer[stream_impl->read_len],
- stream_impl->size - stream_impl->read_len);
- read = stream_impl->size - stream_impl->read_len;
- stream_impl->read_len += read;
- }
- else
- read = 0;
- }
+ if (stream_impl->size >= count)
+ {
+ if (buffer && (stream_impl->size > stream_impl->read_len))
+ {
+ unread = (stream_impl->size - stream_impl->read_len);
+ if (unread > count)
+ {
+ memcpy(buffer, &stream_impl->buffer[stream_impl->read_len],
+ count);
+ read = count;
+ stream_impl->read_len += read;
+ }
+ else
+ {
+ memcpy(buffer, &stream_impl->buffer[stream_impl->read_len],
+ unread);
+ read = unread;
+ stream_impl->read_len += read;
+ }
+ }
+ else
+ read = 0;
+ }
+ else
+ {
+ if (buffer && (stream_impl->size > stream_impl->read_len))
+ {
+ memcpy(buffer, &stream_impl->buffer[stream_impl->read_len],
+ stream_impl->size - stream_impl->read_len);
+ read = stream_impl->size - stream_impl->read_len;
+ stream_impl->read_len += read;
+ }
+ else
+ read = 0;
+ }
return read;
}
int AXIS2_CALL
libcurl_stream_write(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
const void *buffer,
size_t count)
{
- return count;
+ return count;
}
-
int AXIS2_CALL
libcurl_stream_skip(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
int count)
{
- return 0;
+ return 0;
}
int AXIS2_CALL
libcurl_stream_get_char(
- axutil_stream_t *stream,
- const axutil_env_t *env)
+ axutil_stream_t * stream,
+ const axutil_env_t * env)
{
- return 0;
+ return 0;
}
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/libcurl_stream.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/libcurl_stream.h?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/libcurl_stream.h (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/libcurl/libcurl_stream.h Fri Sep 28 02:52:58 2007
@@ -11,15 +11,17 @@
{
#endif
+ /** brief Constructor for creating apche2 stream
+ * @return axutil_stream (libcurl)
+ */
+ AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
+ axutil_stream_create_libcurl(
+ const axutil_env_t * env,
+ axis2_char_t * buffer,
+ unsigned int size);
-/** brief Constructor for creating apche2 stream
- * @return axutil_stream (libcurl)
- */
- AXIS2_EXTERN axutil_stream_t * AXIS2_CALL axutil_stream_create_libcurl
- (const axutil_env_t *env, axis2_char_t *buffer, unsigned int size);
+ /** @} */
-/** @} */
-
#ifdef __cplusplus
}
#endif
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_stream.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_stream.c?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_stream.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_stream.c Fri Sep 28 02:52:58 2007
@@ -1,3 +1,4 @@
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -20,7 +21,6 @@
#include "ssl_stream.h"
#include "ssl_utils.h"
-
/**
* @brief Stream struct impl
* Streaming mechanisms for SSL
@@ -38,64 +38,51 @@
#define AXIS2_INTF_TO_IMPL(stream) ((ssl_stream_impl_t *)(stream))
-void AXIS2_CALL
-axis2_ssl_stream_free(
- axutil_stream_t *stream,
- const axutil_env_t *env
- );
-
-axutil_stream_type_t AXIS2_CALL
-axis2_ssl_stream_get_type(
- axutil_stream_t *stream,
- const axutil_env_t *env
- );
-
-int AXIS2_CALL
-axis2_ssl_stream_write(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+void AXIS2_CALL axis2_ssl_stream_free(
+ axutil_stream_t * stream,
+ const axutil_env_t * env);
+
+axutil_stream_type_t AXIS2_CALL axis2_ssl_stream_get_type(
+ axutil_stream_t * stream,
+ const axutil_env_t * env);
+
+int AXIS2_CALL axis2_ssl_stream_write(
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
const void *buffer,
- size_t count
- );
+ size_t count);
-int AXIS2_CALL
-axis2_ssl_stream_read(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+int AXIS2_CALL axis2_ssl_stream_read(
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
void *buffer,
- size_t count
- );
-
-int AXIS2_CALL
-axis2_ssl_stream_skip(
- axutil_stream_t *stream,
- const axutil_env_t *env,
- int count
- );
-
-int AXIS2_CALL
-axis2_ssl_stream_get_char(
- axutil_stream_t *stream,
- const axutil_env_t *env
- );
+ size_t count);
+int AXIS2_CALL axis2_ssl_stream_skip(
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
+ int count);
+
+int AXIS2_CALL axis2_ssl_stream_get_char(
+ axutil_stream_t * stream,
+ const axutil_env_t * env);
-AXIS2_EXTERN axutil_stream_t * AXIS2_CALL
+AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axutil_stream_create_ssl(
- const axutil_env_t *env,
+ const axutil_env_t * env,
axis2_socket_t socket,
- axis2_char_t *server_cert,
- axis2_char_t *key_file,
- axis2_char_t *ssl_pp
- )
+ axis2_char_t * server_cert,
+ axis2_char_t * key_file,
+ axis2_char_t * ssl_pp)
{
ssl_stream_impl_t *stream_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- stream_impl = (ssl_stream_impl_t *)AXIS2_MALLOC(
- env->allocator, sizeof(ssl_stream_impl_t));
+ stream_impl =
+ (ssl_stream_impl_t *) AXIS2_MALLOC(env->allocator,
+ sizeof(ssl_stream_impl_t));
- if (! stream_impl)
+ if (!stream_impl)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
@@ -105,33 +92,34 @@
stream_impl->ssl = NULL;
stream_impl->ctx = axis2_ssl_utils_initialize_ctx(env, server_cert,
- key_file, ssl_pp);
- if (! stream_impl->ctx)
+ key_file, ssl_pp);
+ if (!stream_impl->ctx)
{
- axis2_ssl_stream_free((axutil_stream_t*)stream_impl, env);
+ axis2_ssl_stream_free((axutil_stream_t *) stream_impl, env);
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SSL_ENGINE, AXIS2_FAILURE);
return NULL;
}
stream_impl->ssl = axis2_ssl_utils_initialize_ssl(env, stream_impl->ctx,
- stream_impl->socket);
- if (! stream_impl->ssl)
+ stream_impl->socket);
+ if (!stream_impl->ssl)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SSL_ENGINE, AXIS2_FAILURE);
return NULL;
}
stream_impl->stream_type = AXIS2_STREAM_MANAGED;
-
+
axutil_stream_set_read(&(stream_impl->stream), env, axis2_ssl_stream_read);
- axutil_stream_set_write(&(stream_impl->stream), env, axis2_ssl_stream_write);
+ axutil_stream_set_write(&(stream_impl->stream), env,
+ axis2_ssl_stream_write);
axutil_stream_set_skip(&(stream_impl->stream), env, axis2_ssl_stream_skip);
return &(stream_impl->stream);
}
-
void AXIS2_CALL
-axis2_ssl_stream_free(axutil_stream_t *stream,
- const axutil_env_t *env)
+axis2_ssl_stream_free(
+ axutil_stream_t * stream,
+ const axutil_env_t * env)
{
ssl_stream_impl_t *stream_impl = NULL;
AXIS2_ENV_CHECK(env, void);
@@ -145,11 +133,10 @@
int AXIS2_CALL
axis2_ssl_stream_read(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
void *buffer,
- size_t count
- )
+ size_t count)
{
ssl_stream_impl_t *stream_impl = NULL;
int read = -1;
@@ -159,34 +146,32 @@
stream_impl = AXIS2_INTF_TO_IMPL(stream);
- read = SSL_read(stream_impl->ssl , buffer, count);
- switch (SSL_get_error(stream_impl->ssl , read))
+ read = SSL_read(stream_impl->ssl, buffer, count);
+ switch (SSL_get_error(stream_impl->ssl, read))
{
- case SSL_ERROR_NONE:
- len = read;
- break;
- case SSL_ERROR_ZERO_RETURN:
- len = -1;
- break;
- case SSL_ERROR_SYSCALL:
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
- "SSL Error: Premature close");
- len = -1;
- break;
- default:
- len = -1;
- break;
+ case SSL_ERROR_NONE:
+ len = read;
+ break;
+ case SSL_ERROR_ZERO_RETURN:
+ len = -1;
+ break;
+ case SSL_ERROR_SYSCALL:
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "SSL Error: Premature close");
+ len = -1;
+ break;
+ default:
+ len = -1;
+ break;
}
return len;
}
int AXIS2_CALL
axis2_ssl_stream_write(
- axutil_stream_t *stream,
- const axutil_env_t *env,
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
const void *buf,
- size_t count
- )
+ size_t count)
{
ssl_stream_impl_t *stream_impl = NULL;
int write = -1;
@@ -196,25 +181,23 @@
stream_impl = AXIS2_INTF_TO_IMPL(stream);
write = SSL_write(stream_impl->ssl, buf, count);
- switch (SSL_get_error(stream_impl->ssl , write))
+ switch (SSL_get_error(stream_impl->ssl, write))
{
- case SSL_ERROR_NONE:
- if (count != write)
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Incomplete SSL write!");
- break;
- default:
- return -1;
+ case SSL_ERROR_NONE:
+ if (count != write)
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Incomplete SSL write!");
+ break;
+ default:
+ return -1;
}
return write;
}
-
int AXIS2_CALL
axis2_ssl_stream_skip(
- axutil_stream_t *stream,
- const axutil_env_t *env,
- int count
- )
+ axutil_stream_t * stream,
+ const axutil_env_t * env,
+ int count)
{
ssl_stream_impl_t *stream_impl = NULL;
axis2_char_t *tmp_buffer = NULL;
@@ -225,8 +208,7 @@
tmp_buffer = AXIS2_MALLOC(env->allocator, count * sizeof(axis2_char_t));
if (tmp_buffer == NULL)
{
- AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return -1;
}
len = SSL_read(stream_impl->ssl, tmp_buffer, count);
@@ -237,9 +219,8 @@
int AXIS2_CALL
axis2_ssl_stream_get_char(
- axutil_stream_t *stream,
- const axutil_env_t *env
- )
+ axutil_stream_t * stream,
+ const axutil_env_t * env)
{
int ret = -1;
AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
@@ -249,11 +230,9 @@
axutil_stream_type_t AXIS2_CALL
axis2_ssl_stream_get_type(
- axutil_stream_t *stream,
- const axutil_env_t *env
- )
+ axutil_stream_t * stream,
+ const axutil_env_t * env)
{
AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
return AXIS2_INTF_TO_IMPL(stream)->stream_type;
}
-
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_stream.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_stream.h?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_stream.h (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_stream.h Fri Sep 28 02:52:58 2007
@@ -1,3 +1,4 @@
+
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
@@ -29,21 +30,19 @@
{
#endif
+ /** \brief Constructor for creating ssl stream
+ * @return axutil_stream (ssl)
+ */
+ AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
+ axutil_stream_create_ssl(
+ const axutil_env_t * env,
+ axis2_socket_t socket,
+ axis2_char_t * server_cert,
+ axis2_char_t * key_file,
+ axis2_char_t * ssl_pp);
-/** \brief Constructor for creating ssl stream
- * @return axutil_stream (ssl)
- */
-AXIS2_EXTERN axutil_stream_t * AXIS2_CALL
-axutil_stream_create_ssl(
- const axutil_env_t *env,
- axis2_socket_t socket,
- axis2_char_t *server_cert,
- axis2_char_t *key_file,
- axis2_char_t *ssl_pp
- );
+ /** @} */
-/** @} */
-
#ifdef __cplusplus
}
#endif
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_utils.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_utils.c?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_utils.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_utils.c Fri Sep 28 02:52:58 2007
@@ -1,3 +1,4 @@
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -17,41 +18,41 @@
#include "ssl_utils.h"
BIO *bio_err = 0;
-static int password_cb(
+static int
+password_cb(
char *buf,
- int size,
- int rwflag,
+ int size,
+ int rwflag,
void *passwd)
{
- strncpy(buf, (char *)passwd, size);
- buf[size-1] = '\0';
- return(strlen(buf));
+ strncpy(buf, (char *) passwd, size);
+ buf[size - 1] = '\0';
+ return (strlen(buf));
}
-AXIS2_EXTERN SSL_CTX* AXIS2_CALL
+AXIS2_EXTERN SSL_CTX *AXIS2_CALL
axis2_ssl_utils_initialize_ctx(
- const axutil_env_t *env,
- axis2_char_t *server_cert,
- axis2_char_t *key_file,
- axis2_char_t *ssl_pp)
+ const axutil_env_t * env,
+ axis2_char_t * server_cert,
+ axis2_char_t * key_file,
+ axis2_char_t * ssl_pp)
{
SSL_METHOD *meth = NULL;
SSL_CTX *ctx = NULL;
- axis2_char_t *ca_file = server_cert;
+ axis2_char_t *ca_file = server_cert;
AXIS2_ENV_CHECK(env, NULL);
if (!ca_file)
{
AXIS2_LOG_INFO(env->log, "[ssl client] CA certificate not specified");
- AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SSL_NO_CA_FILE,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SSL_NO_CA_FILE, AXIS2_FAILURE);
return NULL;
}
if (!bio_err)
{
- /* Global system initialization*/
+ /* Global system initialization */
SSL_library_init();
SSL_load_error_strings();
@@ -59,47 +60,48 @@
bio_err = BIO_new_fp(stderr, BIO_NOCLOSE);
}
- /* Create our context*/
+ /* Create our context */
meth = SSLv23_method();
ctx = SSL_CTX_new(meth);
/* Load our keys and certificates
* If we need client certificates it has to be done here
*/
- if (key_file) /*can we check if the server needs client auth?*/
+ if (key_file) /*can we check if the server needs client auth? */
{
- if (!ssl_pp)
+ if (!ssl_pp)
AXIS2_LOG_INFO(env->log, "[ssl client] No passphrase for the "
- "specified");
+ "specified");
- SSL_CTX_set_default_passwd_cb_userdata(ctx, (void *)ssl_pp);
+ SSL_CTX_set_default_passwd_cb_userdata(ctx, (void *) ssl_pp);
SSL_CTX_set_default_passwd_cb(ctx, password_cb);
- if(!(SSL_CTX_use_certificate_chain_file(ctx, key_file)))
+ if (!(SSL_CTX_use_certificate_chain_file(ctx, key_file)))
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[ssl client] Loading client certificate failed ");
SSL_CTX_free(ctx);
return NULL;
}
- if(!(SSL_CTX_use_PrivateKey_file(ctx, key_file, SSL_FILETYPE_PEM)))
+ if (!(SSL_CTX_use_PrivateKey_file(ctx, key_file, SSL_FILETYPE_PEM)))
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[ssl client] Loading client key failed");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[ssl client] Loading client key failed");
SSL_CTX_free(ctx);
return NULL;
}
}
else
{
- AXIS2_LOG_INFO(env->log, "[ssl client] Client certificate chain file "
- "not specified");
+ AXIS2_LOG_INFO(env->log, "[ssl client] Client certificate chain file "
+ "not specified");
}
- /* Load the CAs we trust*/
+ /* Load the CAs we trust */
if (!(SSL_CTX_load_verify_locations(ctx, ca_file, 0)))
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[ssl client] Loading CA certificate failed");
SSL_CTX_free(ctx);
return NULL;
@@ -108,16 +110,16 @@
/* verify depth should be read from axis2.xml, let's use the default for
* the moment*/
#if (OPENSSL_VERSION_NUMBER < 0x00905100L)
- /*SSL_CTX_set_verify_depth(ctx, 1);*/
+ /*SSL_CTX_set_verify_depth(ctx, 1); */
#endif
return ctx;
}
-AXIS2_EXTERN SSL* AXIS2_CALL
+AXIS2_EXTERN SSL *AXIS2_CALL
axis2_ssl_utils_initialize_ssl(
- const axutil_env_t *env,
- SSL_CTX *ctx,
+ const axutil_env_t * env,
+ SSL_CTX * ctx,
axis2_socket_t socket)
{
SSL *ssl = NULL;
@@ -139,16 +141,18 @@
SSL_set_bio(ssl, sbio, sbio);
if (SSL_connect(ssl) <= 0)
{
- AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SSL_ENGINE,
- AXIS2_FAILURE);
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SSL_ENGINE, AXIS2_FAILURE);
return NULL;
}
-
+
if (SSL_get_verify_result(ssl) != X509_V_OK)
{
+
char sslerror[128]; /** error buffer must be at least 120 bytes long */
ERR_error_string(SSL_get_verify_result(ssl), sslerror);
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,"[ssl client] SSL certificate verification failed (%s)" ,sslerror);
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[ssl client] SSL certificate verification failed (%s)",
+ sslerror);
return NULL;
}
@@ -157,9 +161,9 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_ssl_utils_cleanup_ssl(
- const axutil_env_t *env,
- SSL_CTX *ctx,
- SSL *ssl)
+ const axutil_env_t * env,
+ SSL_CTX * ctx,
+ SSL * ssl)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
Modified: webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_utils.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_utils.h?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_utils.h (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/sender/ssl/ssl_utils.h Fri Sep 28 02:52:58 2007
@@ -1,3 +1,4 @@
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -23,34 +24,29 @@
#include <axis2_const.h>
#include <axis2_defines.h>
-
#ifdef __cplusplus
extern "C"
{
#endif
-
-AXIS2_EXTERN SSL_CTX* AXIS2_CALL
-axis2_ssl_utils_initialize_ctx(
- const axutil_env_t *env,
- axis2_char_t *server_cert,
- axis2_char_t *key_file,
- axis2_char_t *ssl_pp
- );
-
-AXIS2_EXTERN SSL* AXIS2_CALL
-axis2_ssl_utils_initialize_ssl(
- const axutil_env_t *env,
- SSL_CTX *ctx,
- axis2_socket_t socket
- );
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_ssl_utils_cleanup_ssl(
- const axutil_env_t *env,
- SSL_CTX *ctx,
- SSL *ssl
- );
+ AXIS2_EXTERN SSL_CTX *AXIS2_CALL
+ axis2_ssl_utils_initialize_ctx(
+ const axutil_env_t * env,
+ axis2_char_t * server_cert,
+ axis2_char_t * key_file,
+ axis2_char_t * ssl_pp);
+
+ AXIS2_EXTERN SSL *AXIS2_CALL
+ axis2_ssl_utils_initialize_ssl(
+ const axutil_env_t * env,
+ SSL_CTX * ctx,
+ axis2_socket_t socket);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_ssl_utils_cleanup_ssl(
+ const axutil_env_t * env,
+ SSL_CTX * ctx,
+ SSL * ssl);
#ifdef __cplusplus
}
Modified: webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_constants.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_constants.h?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_constants.h (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_constants.h Fri Sep 28 02:52:58 2007
@@ -1,3 +1,4 @@
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -19,19 +20,15 @@
#define AXIS2_IIS_CONSTANTS_H
#define INTERNET_MAX_PATH_LENGTH 2048
-#define INTERNET_MAX_SCHEME_LENGTH 32 // longest protocol name length
-#define INTERNET_MAX_URL_LENGTH (INTERNET_MAX_SCHEME_LENGTH \
- + sizeof("://") \
- + INTERNET_MAX_PATH_LENGTH)
-
+#define INTERNET_MAX_SCHEME_LENGTH 32 // longest protocol name length
+#define INTERNET_MAX_URL_LENGTH (INTERNET_MAX_SCHEME_LENGTH \
+sizeof("://") \
+INTERNET_MAX_PATH_LENGTH)
#define URI_MATCHED 1
#define URI_UN_MATCHED 2
#define EXTENSION_URL "/axis2/mod_axis2_IIS.dll\? "
#define EXTENSION_URL_AXIS2 "/axis2/"
#define EXTENSION_URL_MODIIS "mod_axis2_IIS.dll\? "
-
-
+
#define MAX_SERVERNAME 128
#define MAX_PORT_LEN 8
@@ -45,7 +42,6 @@
#define OK 200
#define HTTP_INTERNAL_SERVER_ERROR 500
#define HTTP_ACCEPTED 202
-
-
-#endif /*AXIS2_IIS_CONSTANTS_H*/
+
+#endif /*AXIS2_IIS_CONSTANTS_H*/
Modified: webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c?rev=580276&r1=580275&r2=580276&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c Fri Sep 28 02:52:58 2007
@@ -1,3 +1,4 @@
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -21,32 +22,32 @@
#include <axutil_string.h>
#include "axis2_iis_constants.h"
+
/**
* @brief IIS Out transport info impl structure
* Axis2 iis_out_transport_info_impl
*/
-
typedef struct axis2_iis_out_transport_info_s
{
- axis2_http_out_transport_info_t out_transport_info;
+ axis2_http_out_transport_info_t out_transport_info;
axis2_char_t *encoding;
- axis2_char_t content_type[MAX_HTTP_CONTENT_TYPE_LEN];
-}axis2_iis_out_transport_info_t;
+ axis2_char_t content_type[MAX_HTTP_CONTENT_TYPE_LEN];
+} axis2_iis_out_transport_info_t;
#define AXIS2_INTF_TO_IMPL(out_transport_info) \
((axis2_iis_out_transport_info_t *)(out_transport_info))
void AXIS2_CALL
axis2_iis_out_transport_info_free(
- axis2_http_out_transport_info_t *out_transport_info,
- const axutil_env_t *env)
+ axis2_http_out_transport_info_t * out_transport_info,
+ const axutil_env_t * env)
{
axis2_iis_out_transport_info_t *info = NULL;
AXIS2_ENV_CHECK(env, void);
info = AXIS2_INTF_TO_IMPL(out_transport_info);
-
+
if (info->encoding)
{
AXIS2_FREE(env->allocator, info->encoding);
@@ -60,7 +61,7 @@
void AXIS2_CALL
axis2_iis_out_transport_info_free_void_arg(
void *transport_info,
- const axutil_env_t *env)
+ const axutil_env_t * env)
{
axis2_http_out_transport_info_t *transport_info_l = NULL;
@@ -72,32 +73,32 @@
axis2_status_t AXIS2_CALL
axis2_iis_out_transport_info_set_content_type(
- axis2_http_out_transport_info_t *info,
- const axutil_env_t *env,
- const axis2_char_t *content_type)
+ axis2_http_out_transport_info_t * info,
+ const axutil_env_t * env,
+ const axis2_char_t * content_type)
{
- int temp = 0;
+ int temp = 0;
axis2_iis_out_transport_info_t *info_impl = NULL;
- info_impl = AXIS2_INTF_TO_IMPL(info);
- info_impl->content_type[0] = '\0';
+ info_impl = AXIS2_INTF_TO_IMPL(info);
+ info_impl->content_type[0] = '\0';
if (info_impl->encoding)
- {
- sprintf(info_impl->content_type, "%s%s%s", content_type, ";charser:", info_impl->encoding);
+ {
+ sprintf(info_impl->content_type, "%s%s%s", content_type, ";charser:",
+ info_impl->encoding);
}
else
{
- strcat(info_impl->content_type, content_type);
+ strcat(info_impl->content_type, content_type);
}
return AXIS2_SUCCESS;
}
-
axis2_status_t AXIS2_CALL
axis2_iis_out_transport_info_set_char_encoding(
- axis2_http_out_transport_info_t *info,
- const axutil_env_t *env,
- const axis2_char_t *encoding)
+ axis2_http_out_transport_info_t * info,
+ const axutil_env_t * env,
+ const axis2_char_t * encoding)
{
axis2_iis_out_transport_info_t *info_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -113,46 +114,44 @@
return AXIS2_SUCCESS;
}
+
axis2_http_out_transport_info_t *AXIS2_CALL
axis2_iis_out_transport_info_create(
- const axutil_env_t *env,
- LPEXTENSION_CONTROL_BLOCK lpECB)
+ const axutil_env_t * env,
+ LPEXTENSION_CONTROL_BLOCK lpECB)
{
axis2_iis_out_transport_info_t *info = NULL;
axis2_http_out_transport_info_t *http_out_info = NULL;
AXIS2_ENV_CHECK(env, NULL);
- info = (axis2_iis_out_transport_info_t *)AXIS2_MALLOC
- (env->allocator, sizeof(
- axis2_iis_out_transport_info_t));
+ info = (axis2_iis_out_transport_info_t *) AXIS2_MALLOC
+ (env->allocator, sizeof(axis2_iis_out_transport_info_t));
- if (! info)
+ if (!info)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
info->encoding = NULL;
- http_out_info = &(info->out_transport_info);
+ http_out_info = &(info->out_transport_info);
- axis2_http_out_transport_info_set_content_type_func(http_out_info,
- env, axis2_iis_out_transport_info_set_content_type);
- axis2_http_out_transport_info_set_char_encoding_func(http_out_info,
- env, axis2_iis_out_transport_info_set_char_encoding);
- axis2_http_out_transport_info_set_free_func(http_out_info,
- env, axis2_iis_out_transport_info_free);
+ axis2_http_out_transport_info_set_content_type_func(http_out_info,
+ env,
+ axis2_iis_out_transport_info_set_content_type);
+ axis2_http_out_transport_info_set_char_encoding_func(http_out_info, env,
+ axis2_iis_out_transport_info_set_char_encoding);
+ axis2_http_out_transport_info_set_free_func(http_out_info, env,
+ axis2_iis_out_transport_info_free);
return http_out_info;
}
axis2_char_t *
-axis2_iis_out_transport_get_content(axis2_http_out_transport_info_t *info)
+axis2_iis_out_transport_get_content(
+ axis2_http_out_transport_info_t * info)
{
- axis2_iis_out_transport_info_t *info_impl = NULL;
- info_impl = AXIS2_INTF_TO_IMPL(info);
- return info_impl->content_type;
+ axis2_iis_out_transport_info_t *info_impl = NULL;
+ info_impl = AXIS2_INTF_TO_IMPL(info);
+ return info_impl->content_type;
}
-
-
-
-
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org