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 2007/02/19 10:17:51 UTC
svn commit: r509138 - in
/webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender:
http_sender.c libcurl/ libcurl/Makefile libcurl/Makefile.am
libcurl/Makefile.in libcurl/axis2_libcurl.c libcurl/axis2_libcurl.h
sender_util.c
Author: dinesh
Date: Mon Feb 19 01:17:50 2007
New Revision: 509138
URL: http://svn.apache.org/viewvc?view=rev&rev=509138
Log:
axis2c-523:transport sender refactoring
Added:
webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/http_sender.c
webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/
webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile
webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.am
webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.in
webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.c
webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.h
webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/sender_util.c
Added: webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/http_sender.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/http_sender.c?view=auto&rev=509138
==============================================================================
--- webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/http_sender.c (added)
+++ webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/http_sender.c Mon Feb 19 01:17:50 2007
@@ -0,0 +1,1080 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <axis2_http_sender.h>
+#include <axis2_soap_over_http_sender.h>
+#include <axis2_rest_sender.h>
+#include <axis2_string.h>
+#include <axis2_http_transport.h>
+#include <string.h>
+#include <axiom_output.h>
+#include <axis2_op_ctx.h>
+#include <axis2_ctx.h>
+#include <axis2_conf_ctx.h>
+#include <axis2_http_client.h>
+#include <axiom_xml_writer.h>
+#include <axis2_property.h>
+#include <axis2_param.h>
+#include <axis2_types.h>
+#include <axis2_generic_obj.h>
+#include <axis2_const.h>
+#include <axis2_util.h>
+#include <axiom_soap.h>
+
+#ifndef AXIS2_LIBCURL_ENABLED
+#include <libcurl/axis2_libcurl.h>
+#endif
+/**
+ * @brief SOAP over HTTP sender struct impl
+ * Axis2 SOAP over HTTP sender impl
+ */
+
+typedef struct axis2_http_sender_impl
+{
+ axis2_http_sender_t sender;
+ axis2_char_t *http_version;
+ axis2_bool_t chunked;
+ int so_timeout;
+ int connection_timeout;
+ axiom_output_t *om_output;
+ axis2_http_client_t *client;
+ axis2_bool_t is_soap;
+}axis2_http_sender_impl_t;
+
+#define AXIS2_INTF_TO_IMPL(sender)\
+ ((axis2_http_sender_impl_t *)(sender))
+
+/***************************** Function headers *******************************/
+axis2_status_t AXIS2_CALL
+axis2_http_sender_get_header_info(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx,
+ axis2_http_simple_response_t *response);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_process_response(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx,
+ axis2_http_simple_response_t *response);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_get_timeout_values(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_send(
+ axis2_http_sender_t *sender,
+ const axis2_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);
+
+#ifdef AXIS2_LIBCURL_ENABLED
+axis2_status_t AXIS2_CALL
+axis2_libcurl_http_send(
+ axis2_http_sender_t *sender,
+ const axis2_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_status_t AXIS2_CALL
+axis2_http_sender_set_chunked(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_bool_t chunked);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_set_om_output(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axiom_output_t *om_output);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_set_http_version(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_char_t *version);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_configure_proxy(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_configure_server_cert(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_configure_key_file(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx);
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_free(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env);
+
+/***************************** End of function headers ************************/
+
+axis2_http_sender_t *AXIS2_CALL
+axis2_http_sender_create(
+ const axis2_env_t *env)
+{
+ axis2_http_sender_impl_t *sender_impl = NULL;
+ AXIS2_ENV_CHECK(env, NULL);
+
+ sender_impl = (axis2_http_sender_impl_t *)AXIS2_MALLOC
+ (env->allocator, sizeof(
+ axis2_http_sender_impl_t));
+
+ if (NULL == sender_impl)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ sender_impl->http_version = (axis2_char_t *)AXIS2_HTTP_HEADER_PROTOCOL_11;
+ sender_impl->so_timeout = AXIS2_HTTP_DEFAULT_SO_TIMEOUT;
+ sender_impl->connection_timeout = AXIS2_HTTP_DEFAULT_CONNECTION_TIMEOUT;
+ /* unlike the java impl we don't have a default om output
+ * it should be explicitly set and it's a MUST
+ */
+ sender_impl->om_output = NULL;
+ sender_impl->chunked = AXIS2_FALSE;
+ sender_impl->client = NULL;
+ sender_impl->sender.ops = AXIS2_MALLOC(env->allocator,
+ sizeof(axis2_http_sender_ops_t));
+ if (NULL == sender_impl->sender.ops)
+ {
+ axis2_http_sender_free((axis2_http_sender_t *)
+ sender_impl, env);
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ sender_impl->sender.ops->send =
+ axis2_http_sender_send;
+ sender_impl->sender.ops->set_chunked =
+ axis2_http_sender_set_chunked;
+ sender_impl->sender.ops->set_om_output =
+ axis2_http_sender_set_om_output;
+ sender_impl->sender.ops->set_http_version =
+ axis2_http_sender_set_http_version;
+ sender_impl->sender.ops->free =
+ axis2_http_sender_free;
+#ifdef AXIS2_LIBCURL_ENABLED
+ sender_impl->sender.ops->send_curl = axis2_libcurl_http_send;
+#endif
+ return &(sender_impl->sender);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_free(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env)
+{
+ axis2_http_sender_impl_t *sender_impl = NULL;
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ sender_impl = AXIS2_INTF_TO_IMPL(sender);
+ if (sender_impl->http_version)
+ {
+ AXIS2_FREE(env->allocator, sender_impl->http_version);
+ sender_impl->http_version = NULL;
+ }
+ if (sender->ops)
+ AXIS2_FREE(env->allocator, sender->ops);
+
+ /* Do not free this here since it will be required in later processing
+ * of the response soap message
+ */
+ sender_impl->client = NULL;
+ AXIS2_FREE(env->allocator, sender_impl);
+ return AXIS2_SUCCESS;
+}
+
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_send(
+ axis2_http_sender_t *sender,
+ const axis2_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_http_simple_request_t *request = NULL;
+ axis2_http_request_line_t *request_line = NULL;
+ axis2_url_t *url = NULL;
+ axis2_http_sender_impl_t *sender_impl = NULL;
+ axiom_xml_writer_t *xml_writer = NULL;
+ axis2_char_t *buffer = NULL;
+ unsigned int buffer_size = 0;
+ const axis2_char_t *char_set_enc = NULL;
+ axis2_string_t *char_set_enc_str = NULL;
+ int status_code = -1;
+ axis2_http_simple_response_t *response = NULL;
+ axis2_char_t *content_type = NULL;
+ axis2_byte_t *output_stream = NULL;
+ int output_stream_size = 0;
+ axis2_bool_t doing_mtom = AXIS2_FALSE;
+ axis2_property_t *dump_property = NULL;
+ axis2_param_t *ssl_pp_param = NULL; /* ssl passphrase */
+ axis2_char_t *ssl_pp = NULL;
+ axis2_property_t *content_type_property = NULL;
+ axis2_hash_t *content_type_hash = NULL;
+ axis2_char_t *content_type_value = NULL;
+ axis2_property_t *method = NULL;
+ axis2_char_t *method_value = NULL;
+ axis2_bool_t send_via_get = AXIS2_FALSE;
+ axiom_node_t *data_out = NULL;
+ axiom_node_t *body_node = NULL;
+ axiom_soap_body_t *soap_body = NULL;
+ axis2_bool_t is_soap = AXIS2_TRUE;
+ soap_body = AXIOM_SOAP_ENVELOPE_GET_BODY(out, env);
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, out, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, str_url, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, soap_action, AXIS2_FAILURE);
+
+ if (AXIS2_TRUE == AXIS2_MSG_CTX_GET_DOING_REST(msg_ctx, env))
+ is_soap = AXIS2_FALSE;
+ else
+ is_soap = AXIS2_TRUE;
+
+ url = axis2_url_parse_string(env, str_url);
+ sender_impl = AXIS2_INTF_TO_IMPL(sender);
+
+ if (!is_soap)
+ {
+ if (NULL == soap_body)
+ {
+ AXIS2_ERROR_SET(env->error,
+ 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));
+ return AXIS2_FAILURE;
+ }
+ body_node = AXIOM_SOAP_BODY_GET_BASE_NODE(soap_body, env);
+ if (NULL == body_node)
+ {
+ return AXIS2_FAILURE;
+ }
+ data_out = AXIOM_NODE_GET_FIRST_ELEMENT(body_node, env);
+
+ method = (axis2_property_t *)AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env,
+ AXIS2_HTTP_METHOD, AXIS2_FALSE);
+ if (method)
+ method_value = (axis2_char_t *) AXIS2_PROPERTY_GET_VALUE (method, env);
+
+ /* The default is POST */
+ if (method_value && 0 == AXIS2_STRCMP(method_value, AXIS2_HTTP_HEADER_GET))
+ {
+ send_via_get = AXIS2_TRUE;
+ }
+ }
+
+ if (NULL == url)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ if (sender_impl->client)
+ {
+ AXIS2_HTTP_CLIENT_FREE(sender_impl->client, env);
+ sender_impl->client = NULL;
+ }
+
+ sender_impl->client = axis2_http_client_create(env, url);
+ if (NULL == sender_impl->client)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ /* configure proxy settings if we have set so
+ */
+
+ axis2_http_sender_configure_proxy(sender, env, msg_ctx);
+
+ if (!send_via_get)
+ {
+
+ /* We put the client into msg_ctx so that we can free it once the processing
+ * is done at client side
+ */
+ /*property = axis2_property_create(env);
+ AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+ AXIS2_PROPERTY_SET_FREE_FUNC(property, env,
+ axis2_http_client_free_void_arg);
+ AXIS2_PROPERTY_SET_VALUE(property, env, sender_impl->client);
+ AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, AXIS2_HTTP_CLIENT,
+ property, AXIS2_FALSE);*/
+
+ doing_mtom = AXIS2_MSG_CTX_GET_DOING_MTOM(msg_ctx, env);
+
+ if (NULL == sender_impl->om_output)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NULL_OM_OUTPUT,
+ AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+ xml_writer = AXIOM_OUTPUT_GET_XML_WRITER(sender_impl->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 = axis2_string_get_buffer(char_set_enc_str, env);
+ }
+
+ if (is_soap)
+ {
+ dump_property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env,
+ AXIS2_DUMP_INPUT_MSG_TRUE, AXIS2_FALSE);
+ if(dump_property)
+ {
+ axis2_char_t *dump_true = AXIS2_PROPERTY_GET_VALUE(dump_property, env);
+ if(0 == AXIS2_STRCMP(dump_true, AXIS2_VALUE_TRUE))
+ {
+ AXIS2_HTTP_CLIENT_SET_DUMP_INPUT_MSG(sender_impl->client, env, AXIS2_TRUE);
+ }
+ }
+
+ AXIOM_OUTPUT_SET_DO_OPTIMIZE(sender_impl->om_output, env,
+ doing_mtom);
+ AXIOM_SOAP_ENVELOPE_SERIALIZE(out, env, sender_impl->om_output,
+ AXIS2_FALSE);
+ }
+ else
+ {
+ AXIOM_NODE_SERIALIZE(data_out, env, sender_impl->om_output);
+ }
+
+
+ if (doing_mtom)
+ {
+ AXIOM_OUTPUT_FLUSH(sender_impl->om_output, env, &output_stream,
+ &output_stream_size);
+ }
+ else
+ {
+ buffer = AXIOM_XML_WRITER_GET_XML(xml_writer, env);
+ }
+
+ if (NULL == buffer && !doing_mtom)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "NULL xml returned"
+ "from xml writer");
+ return AXIS2_FAILURE;
+ }
+
+ request_line = axis2_http_request_line_create(env, "POST",
+ AXIS2_URL_GET_PATH(url, env),
+ sender_impl->http_version);
+ }
+ else
+ {
+ axis2_char_t *request_params = NULL;
+ axis2_char_t *path = NULL;
+
+ request_params = axis2_rest_sender_get_param_string(sender, env, msg_ctx);
+ path = axis2_strcat(env, AXIS2_URL_GET_PATH(url, env), "?",
+ request_params, NULL);
+ request_line = axis2_http_request_line_create(env, "GET", path,
+ sender_impl->http_version);
+ }
+
+ request = axis2_http_simple_request_create(env, request_line, NULL, 0,
+ NULL);
+
+ axis2_http_sender_util_add_header (env, request, AXIS2_HTTP_HEADER_USER_AGENT, "Axis2/C");
+
+ 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, (
+ AXIS2_STRLEN(soap_action) + 5) * sizeof(axis2_char_t));
+ sprintf(tmp_soap_action, "\"%s\"", soap_action);
+ axis2_http_sender_util_add_header (env, request, AXIS2_HTTP_HEADER_SOAP_ACTION, tmp_soap_action);
+ AXIS2_FREE(env->allocator, tmp_soap_action);
+ }
+ else
+ {
+ axis2_http_sender_util_add_header (env, request, AXIS2_HTTP_HEADER_SOAP_ACTION, soap_action);
+ }
+ }
+
+ if (!send_via_get)
+ buffer_size = AXIOM_XML_WRITER_GET_XML_SIZE(xml_writer, env);
+
+ if (AXIS2_FALSE == sender_impl->chunked)
+ {
+ axis2_char_t tmp_buf[10];
+ if (!buffer)
+ {
+ buffer_size = output_stream_size;
+ }
+
+ sprintf(tmp_buf, "%d", buffer_size);
+ axis2_http_sender_util_add_header (env, request, AXIS2_HTTP_HEADER_CONTENT_LENGTH, tmp_buf);
+ }
+ else
+ {
+ axis2_http_sender_util_add_header (env, request,
+ AXIS2_HTTP_HEADER_TRANSFER_ENCODING,
+ AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED);
+ }
+
+ if (is_soap)
+ {
+ if (doing_mtom)
+ {
+ content_type = (axis2_char_t *)AXIOM_OUTPUT_GET_CONTENT_TYPE(sender_impl->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 (axis2_strcmp(soap_action, ""))
+ {
+ axis2_char_t *temp_content_type = NULL;
+ temp_content_type = AXIS2_STRACAT(content_type, ";action=", env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ temp_content_type = AXIS2_STRACAT(content_type, soap_action, env);
+ 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 = AXIS2_STRACAT(content_type, ";charset=", env);
+ temp_content_type = AXIS2_STRACAT(content_type, char_set_enc, env);
+ 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 = AXIS2_STRACAT(content_type, ";charset=", env);
+ temp_content_type = AXIS2_STRACAT(content_type, char_set_enc, env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ if (axis2_strcmp(soap_action, ""))
+ {
+ temp_content_type = AXIS2_STRACAT(content_type, ";action=", env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ temp_content_type = AXIS2_STRACAT(content_type, soap_action, env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ }
+ temp_content_type = AXIS2_STRACAT(content_type, ";", env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ }
+ }
+ else
+ {
+ content_type_property = (axis2_property_t *)AXIS2_MSG_CTX_GET_PROPERTY(
+ msg_ctx, env,
+ AXIS2_USER_DEFINED_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_FALSE);
+
+ if (content_type_property)
+ {
+ content_type_hash = (axis2_hash_t *) AXIS2_PROPERTY_GET_VALUE (content_type_property, env);
+ if (content_type_hash)
+ content_type_value = (char *) axis2_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;
+ }
+ axis2_http_sender_util_add_header (env, request, AXIS2_HTTP_HEADER_CONTENT_TYPE, content_type);
+ if (content_type)
+ {
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = NULL;
+ }
+
+
+ if (0 == AXIS2_STRCMP(sender_impl->http_version,
+ AXIS2_HTTP_HEADER_PROTOCOL_11))
+ {
+ axis2_char_t *header = NULL;
+ header = AXIS2_MALLOC(env->allocator, AXIS2_STRLEN(
+ AXIS2_URL_GET_SERVER(url, env)) + 10 * sizeof(
+ axis2_char_t));
+ sprintf(header, "%s:%d", AXIS2_URL_GET_SERVER(url, env),
+ AXIS2_URL_GET_PORT(url, env));
+ axis2_http_sender_util_add_header (env, request, AXIS2_HTTP_HEADER_HOST, header);
+ AXIS2_FREE(env->allocator, header);
+ header = NULL;
+ }
+
+ if (doing_mtom)
+ {
+ axis2_stream_t *stream = AXIS2_HTTP_SIMPLE_REQUEST_GET_BODY(request, env);
+ if (stream)
+ {
+ AXIS2_STREAM_WRITE(stream, env, output_stream, output_stream_size);
+ }
+ }
+ else
+ {
+ AXIS2_HTTP_SIMPLE_REQUEST_SET_BODY_STRING(request, env, buffer, buffer_size);
+ }
+
+ axis2_http_sender_configure_server_cert(sender, env, msg_ctx);
+
+ axis2_http_sender_configure_key_file(sender, env, msg_ctx);
+
+ axis2_http_sender_get_timeout_values(sender, env, msg_ctx);
+ AXIS2_HTTP_CLIENT_SET_TIMEOUT(sender_impl->client, env,
+ sender_impl->so_timeout);
+
+ /* TODO: Load from property
+ * ssl_pp_property = AXIS2_MSG_CTX_GET_PROPERTY(AXIS2_SSL_PASSPHRASE);*/
+
+ ssl_pp_param = AXIS2_MSG_CTX_GET_PARAMETER(msg_ctx, env, AXIS2_SSL_PASSPHRASE);
+
+ if (ssl_pp_param)
+ {
+ ssl_pp = AXIS2_PARAM_GET_VALUE(ssl_pp_param, env);
+ }
+
+ status_code = AXIS2_HTTP_CLIENT_SEND(sender_impl->client, env, request, ssl_pp);
+
+
+ /*AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;*/
+
+ AXIS2_HTTP_SIMPLE_REQUEST_FREE(request, env);
+ request = NULL;
+
+ AXIS2_FREE(env->allocator, output_stream);
+ output_stream = NULL;
+
+ status_code = AXIS2_HTTP_CLIENT_RECIEVE_HEADER(sender_impl->client, env);
+
+ if (status_code < 0)
+ {
+ return AXIS2_FAILURE;
+ }
+ response = AXIS2_HTTP_CLIENT_GET_RESPONSE(sender_impl->client, env);
+ if (AXIS2_HTTP_RESPONSE_OK_CODE_VAL == status_code ||
+ AXIS2_HTTP_RESPONSE_ACK_CODE_VAL == status_code)
+ {
+ return axis2_http_sender_process_response(sender, env,
+ msg_ctx, response);
+ }
+ else if (AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL == status_code)
+ {
+ axis2_http_header_t *tmp_header = NULL;
+ axis2_char_t *tmp_header_val = NULL;
+ axis2_op_t *op = NULL;
+
+ op = AXIS2_MSG_CTX_GET_OP(msg_ctx, env);
+ if (op)
+ {
+ const axis2_char_t *mep = AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env);
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR,
+ AXIS2_FAILURE);
+ /* handle one way case */
+
+ if (AXIS2_STRCMP(mep, AXIS2_MEP_URI_OUT_ONLY) == 0 ||
+ AXIS2_STRCMP(mep, AXIS2_MEP_URI_ROBUST_OUT_ONLY) == 0)
+ {
+ return AXIS2_FAILURE;
+ }
+ }
+
+ /* set an error to indicate error code status */
+ tmp_header = AXIS2_HTTP_SIMPLE_RESPONSE_GET_FIRST_HEADER(response, env,
+ AXIS2_HTTP_HEADER_CONTENT_TYPE);
+ if (tmp_header)
+ {
+ tmp_header_val = AXIS2_HTTP_HEADER_GET_VALUE(tmp_header, env);
+ }
+
+
+ if (tmp_header_val && (AXIS2_STRSTR(tmp_header_val,
+ AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP) || AXIS2_STRSTR(
+ tmp_header_val, AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML)))
+ {
+ return axis2_http_sender_process_response(sender, env,
+ msg_ctx, response);
+ }
+ }
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR,
+ AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+}
+
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_set_chunked(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_bool_t chunked)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(sender)->chunked = chunked;
+ return AXIS2_SUCCESS;
+}
+
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_set_om_output(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axiom_output_t *om_output)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(sender)->om_output = om_output;
+ return AXIS2_SUCCESS;
+}
+
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_get_header_info(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx,
+ axis2_http_simple_response_t *response)
+{
+ axis2_array_list_t *headers = NULL;
+ axis2_char_t *charset = NULL;
+ axis2_http_sender_impl_t *sender_impl = NULL;
+ int i = 0;
+ axis2_bool_t response_chunked = AXIS2_FALSE;
+ int *content_length = NULL;
+ axis2_property_t *property = NULL;
+ axis2_char_t *content_type = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, response, AXIS2_FAILURE);
+
+ sender_impl = AXIS2_INTF_TO_IMPL(sender);
+
+ /*
+ * TODO MTOM support (MIME header)
+ */
+ headers = AXIS2_HTTP_SIMPLE_RESPONSE_GET_HEADERS(response, env);
+ if (headers == NULL)
+ {
+ return AXIS2_SUCCESS;
+ }
+ for (i = 0; i < AXIS2_ARRAY_LIST_SIZE(headers, env); i++)
+ {
+ axis2_http_header_t *header = AXIS2_ARRAY_LIST_GET(headers, env, i);
+ axis2_char_t *name = AXIS2_HTTP_HEADER_GET_NAME((axis2_http_header_t *)
+ header, env);
+ if (name)
+ {
+ if (0 == AXIS2_STRCMP(name, AXIS2_HTTP_HEADER_TRANSFER_ENCODING) &&
+ 0 == AXIS2_STRCMP(AXIS2_HTTP_HEADER_GET_VALUE(header
+ , env), AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
+ {
+ axis2_char_t *transfer_encoding = NULL;
+
+ transfer_encoding =
+ AXIS2_STRDUP(AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED,
+ env);
+ property = axis2_property_create(env);
+ AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+ AXIS2_PROPERTY_SET_VALUE(property, env, transfer_encoding);
+ AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env,
+ AXIS2_HTTP_HEADER_TRANSFER_ENCODING,
+ property,
+ AXIS2_FALSE);
+ response_chunked = AXIS2_TRUE;
+ }
+ if (0 != AXIS2_STRCMP(name, AXIS2_HTTP_HEADER_CONTENT_TYPE))
+ {
+ axis2_char_t *tmp_charset = NULL;
+ axis2_char_t *content_type = AXIS2_HTTP_HEADER_GET_VALUE(header,
+ env);
+ tmp_charset = strstr(content_type, AXIS2_HTTP_CHAR_SET_ENCODING);
+ if (charset)
+ {
+ charset = AXIS2_STRDUP(tmp_charset, env);
+ break;
+ }
+ }
+ }
+ }
+ content_type = (axis2_char_t *)AXIS2_HTTP_SIMPLE_RESPONSE_GET_CONTENT_TYPE(
+ response, env);
+ if (content_type)
+ {
+ if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_MULTIPART_RELATED)
+ && strstr(content_type, AXIS2_HTTP_HEADER_XOP_XML))
+ {
+ axis2_ctx_t *axis_ctx = AXIS2_OP_CTX_GET_BASE(
+ AXIS2_MSG_CTX_GET_OP_CTX(msg_ctx, env), env);
+ property = axis2_property_create(env);
+ AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+ AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(content_type,
+ env));
+ AXIS2_CTX_SET_PROPERTY(axis_ctx, env, MTOM_RECIVED_CONTENT_TYPE,
+ property, AXIS2_FALSE);
+ }
+ }
+ if (charset)
+ {
+ axis2_ctx_t *axis_ctx = AXIS2_OP_CTX_GET_BASE(AXIS2_MSG_CTX_GET_OP_CTX(
+ msg_ctx, env), env);
+ if (axis_ctx)
+ {
+ property = axis2_property_create(env);
+ AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+ AXIS2_PROPERTY_SET_VALUE(property, env, charset);
+ AXIS2_CTX_SET_PROPERTY(axis_ctx, env, AXIS2_CHARACTER_SET_ENCODING,
+ property, AXIS2_FALSE);
+ }
+ }
+ if (AXIS2_FALSE == response_chunked)
+ {
+ int tmp_len = 0;
+ content_length = AXIS2_MALLOC(env->allocator, sizeof(int));
+ if (NULL == content_length)
+ {
+ return AXIS2_FAILURE;
+ }
+ tmp_len = AXIS2_HTTP_SIMPLE_RESPONSE_GET_CONTENT_LENGTH(response, env);
+ memcpy(content_length, &tmp_len, sizeof(int));
+ property = axis2_property_create(env);
+ AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+ AXIS2_PROPERTY_SET_VALUE(property, env, content_length);
+ AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env,
+ AXIS2_HTTP_HEADER_CONTENT_LENGTH, property,
+ AXIS2_FALSE);
+ }
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_process_response(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx,
+ axis2_http_simple_response_t *response)
+{
+ axis2_stream_t *in_stream = NULL;
+ axis2_property_t *property = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, response, AXIS2_FAILURE);
+
+ in_stream = AXIS2_HTTP_SIMPLE_RESPONSE_GET_BODY(response, env);
+ if (NULL == in_stream)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NULL_STREAM_IN_RESPONSE_BODY,
+ AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+
+ axis2_http_sender_get_header_info(sender, env, msg_ctx, response);
+ /*axis_ctx = AXIS2_OP_CTX_GET_BASE(AXIS2_MSG_CTX_GET_OP_CTX(msg_ctx, env),
+ env);*/
+ property = axis2_property_create(env);
+ AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+ AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_stream_free_void_arg);
+ AXIS2_PROPERTY_SET_VALUE(property, env, in_stream);
+ /*AXIS2_CTX_SET_PROPERTY(axis_ctx, env, AXIS2_TRANSPORT_IN, property,
+ AXIS2_FALSE);*/
+ AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_IN, property,
+ AXIS2_FALSE);
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_get_timeout_values(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx)
+{
+ axis2_char_t *so_str = NULL;
+ axis2_char_t *connection_str = NULL;
+ axis2_param_t *tmp_param = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+
+ tmp_param = AXIS2_MSG_CTX_GET_PARAMETER(msg_ctx,
+ env, AXIS2_HTTP_SO_TIMEOUT);
+
+ if (tmp_param)
+ {
+ so_str = (axis2_char_t *)AXIS2_PARAM_GET_VALUE(tmp_param, env);
+ if (so_str)
+ {
+ AXIS2_INTF_TO_IMPL(sender)->so_timeout = AXIS2_ATOI(so_str);
+ }
+ }
+ tmp_param = AXIS2_MSG_CTX_GET_PARAMETER(msg_ctx, env,
+ AXIS2_HTTP_CONNECTION_TIMEOUT);
+ if (tmp_param)
+ {
+ connection_str = (axis2_char_t *)AXIS2_PARAM_GET_VALUE(tmp_param, env);
+ if (connection_str)
+ {
+ AXIS2_INTF_TO_IMPL(sender)->connection_timeout =
+ AXIS2_ATOI(connection_str);
+ }
+ }
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_set_http_version(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_char_t *version)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(sender)->http_version = AXIS2_STRDUP(version, env);
+ if (NULL == AXIS2_INTF_TO_IMPL(sender)->http_version)
+ {
+ return AXIS2_FAILURE;
+ }
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_configure_proxy(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx)
+{
+ axis2_conf_ctx_t *conf_ctx = NULL;
+ axis2_conf_t *conf = NULL;
+ axis2_transport_out_desc_t *trans_desc = NULL;
+ axis2_param_t *proxy_param = NULL;
+ axis2_hash_t *transport_attrs = NULL;
+ axis2_http_sender_impl_t *sender_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
+
+ sender_impl = AXIS2_INTF_TO_IMPL(sender);
+ conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env);
+ if (NULL == conf_ctx)
+ {
+ return AXIS2_FAILURE;
+ }
+ conf = AXIS2_CONF_CTX_GET_CONF(conf_ctx, env);
+ if (NULL == conf)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ trans_desc = AXIS2_CONF_GET_TRANSPORT_OUT(conf, env, AXIS2_TRANSPORT_ENUM_HTTP);
+ if (NULL == trans_desc)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ proxy_param = AXIS2_PARAM_CONTAINER_GET_PARAM(trans_desc->param_container,
+ env, AXIS2_HTTP_PROXY);
+ if (proxy_param)
+ {
+ transport_attrs = AXIS2_PARAM_GET_ATTRIBUTES(proxy_param, env);
+ if (transport_attrs)
+ {
+ axis2_generic_obj_t *obj = NULL;
+ axiom_attribute_t *host_attr = NULL;
+ axiom_attribute_t *port_attr = NULL;
+ axis2_char_t *proxy_host = NULL;
+ axis2_char_t *proxy_port = NULL;
+
+ obj = axis2_hash_get(transport_attrs, AXIS2_PROXY_HOST_NAME,
+ AXIS2_HASH_KEY_STRING);
+ if (NULL == obj)
+ {
+ return AXIS2_FAILURE;
+ }
+ host_attr = (axiom_attribute_t *)AXIS2_GENERIC_OBJ_GET_VALUE(obj,
+ env);
+ if (NULL == host_attr)
+ {
+ return AXIS2_FAILURE;
+ }
+ proxy_host = AXIOM_ATTRIBUTE_GET_VALUE(host_attr, env);
+ if (NULL == proxy_host)
+ {
+ return AXIS2_FAILURE;
+ }
+ /* Now we get the port */
+ obj = NULL;
+
+ obj = axis2_hash_get(transport_attrs, AXIS2_PROXY_HOST_PORT,
+ AXIS2_HASH_KEY_STRING);
+ port_attr = (axiom_attribute_t*)AXIS2_GENERIC_OBJ_GET_VALUE(obj,
+ env);
+ if (NULL == port_attr)
+ {
+ return AXIS2_FAILURE;
+ }
+ proxy_port = AXIOM_ATTRIBUTE_GET_VALUE(port_attr, env);
+ if (NULL == proxy_port)
+ {
+ return AXIS2_FAILURE;
+ }
+ if (proxy_host && NULL != proxy_port)
+ {
+ AXIS2_HTTP_CLIENT_SET_PROXY(sender_impl->client, env, proxy_host,
+ AXIS2_ATOI(proxy_port));
+ return AXIS2_SUCCESS;
+ }
+ }
+ }
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_http_sender_configure_server_cert(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx)
+{
+ axis2_property_t *server_cert_property = NULL;
+ axis2_param_t *server_cert_param = NULL;
+ axis2_char_t *server_cert = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
+ axis2_http_sender_impl_t *sender_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
+
+ sender_impl = AXIS2_INTF_TO_IMPL(sender);
+
+ server_cert_property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env,
+ AXIS2_SSL_SERVER_CERT, AXIS2_FALSE);
+ if(server_cert_property)
+ {
+ server_cert = (axis2_char_t *) AXIS2_PROPERTY_GET_VALUE(
+ server_cert_property, env);
+ }
+ else
+ {
+ server_cert_param = AXIS2_MSG_CTX_GET_PARAMETER(msg_ctx, env,
+ AXIS2_SSL_SERVER_CERT);
+ if(server_cert_param)
+ {
+ server_cert = (axis2_char_t *) AXIS2_PARAM_GET_VALUE(
+ server_cert_param, env);
+ }
+ }
+
+ if(server_cert)
+ {
+ status = AXIS2_HTTP_CLIENT_SET_SERVER_CERT(sender_impl->client,
+ env, server_cert);
+ }
+
+ return status;
+}
+axis2_status_t AXIS2_CALL
+axis2_http_sender_configure_key_file(
+ axis2_http_sender_t *sender,
+ const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx)
+{
+ axis2_property_t *key_file_property = NULL;
+ axis2_param_t *key_file_param = NULL;
+ axis2_char_t *key_file = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
+ axis2_http_sender_impl_t *sender_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
+
+ sender_impl = AXIS2_INTF_TO_IMPL(sender);
+
+ key_file_property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env,
+ AXIS2_SSL_KEY_FILE, AXIS2_FALSE);
+ if(key_file_property)
+ {
+ key_file = (axis2_char_t *) AXIS2_PROPERTY_GET_VALUE(
+ key_file_property, env);
+ }
+ else
+ {
+ key_file_param = AXIS2_MSG_CTX_GET_PARAMETER(msg_ctx, env,
+ AXIS2_SSL_KEY_FILE);
+ if(key_file_param)
+ {
+ key_file = (axis2_char_t *) AXIS2_PARAM_GET_VALUE(
+ key_file_param, env);
+ }
+ }
+
+ if (key_file)
+ {
+ status = AXIS2_HTTP_CLIENT_SET_KEY_FILE(sender_impl->client,
+ env, key_file);
+ }
+
+ return status;
+}
+
+#ifdef AXIS2_LIBCURL_ENABLED
+axis2_status_t AXIS2_CALL
+axis2_libcurl_http_send(
+ axis2_http_sender_t *sender,
+ const axis2_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_http_sender_impl_t *sender_impl = AXIS2_INTF_TO_IMPL(sender);
+ return axis2_libcurl_send (sender_impl->om_output, env, msg_ctx, out, str_url, soap_action);
+}
+#endif
Added: webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile?view=auto&rev=509138
==============================================================================
--- webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile (added)
+++ webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile Mon Feb 19 01:17:50 2007
@@ -0,0 +1,338 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# modules/core/transport/http/sender/libcurl/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+srcdir = .
+top_srcdir = ../../../../../..
+
+pkgdatadir = $(datadir)/axis2c-src
+pkglibdir = $(libdir)/axis2c-src
+pkgincludedir = $(includedir)/axis2c-src
+top_builddir = ../../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+target_triplet = i686-pc-linux-gnu
+subdir = modules/core/transport/http/sender/libcurl
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/dinesh/axis2c/missing --run aclocal-1.9
+AMDEP_FALSE = #
+AMDEP_TRUE =
+AMTAR = ${SHELL} /home/dinesh/axis2c/missing --run tar
+APACHE2BUILD = apache2
+APACHE2INC = -I/usr/local/apache2/include
+APRINC =
+AR = ar
+AUTOCONF = ${SHELL} /home/dinesh/axis2c/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/dinesh/axis2c/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/dinesh/axis2c/missing --run automake-1.9
+AWK = mawk
+AXIS2_LIBCURL_ENABLED_FALSE = #
+AXIS2_LIBCURL_ENABLED_TRUE =
+AXIS2_SSL_ENABLED_FALSE =
+AXIS2_SSL_ENABLED_TRUE = #
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g3 -O0 -D_LARGEFILE64_SOURCE -ansi -Wall -Wno-implicit-function-declaration -g -DAXIS2_SVR_MULTI_THREADED -DAXIS2_LIBCURL_ENABLED
+CPP = gcc -E
+CPPFLAGS =
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DICLIENT_DIR = diclient
+ECHO = echo
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT =
+F77 =
+FFLAGS =
+GREP = /bin/grep
+GUTHTHILA_DIR =
+GUTHTHILA_LIBS =
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LDFLAGS = -lpthread
+LIBOBJS =
+LIBS = -lz -ldl
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /home/dinesh/axis2c/missing --run makeinfo
+OBJEXT = o
+PACKAGE = axis2c-src
+PACKAGE_BUGREPORT =
+PACKAGE_NAME = axis2c-src
+PACKAGE_STRING = axis2c-src 0.96
+PACKAGE_TARNAME = axis2c-src
+PACKAGE_VERSION = 0.96
+PARSER_CFLAGS =
+PARSER_DIR =
+PARSER_LIBS =
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+RAMPART_DIR =
+RANLIB = ranlib
+SAMPLES =
+SET_MAKE =
+SHELL = /bin/sh
+STRIP = strip
+TESTDIR =
+VERSION = 0.96
+WRAPPER_DIR = libxml2
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 =
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE =
+am__fastdepCXX_FALSE = #
+am__fastdepCXX_TRUE =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias =
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = i686-pc-linux-gnu
+host_alias =
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = /home/dinesh/axis2c/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = mkdir -p --
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /home/dinesh/axis2c/deploy
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+subdirs = util axiom
+sysconfdir = ${prefix}/etc
+target = i686-pc-linux-gnu
+target_alias =
+target_cpu = i686
+target_os = linux-gnu
+target_vendor = pc
+EXTRA_DIST = axis2_libcurl.h axis2_libcurl.c
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/core/transport/http/sender/libcurl/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu modules/core/transport/http/sender/libcurl/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-exec install-exec-am \
+ install-info install-info-am install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Added: webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.am?view=auto&rev=509138
==============================================================================
--- webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.am (added)
+++ webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.am Mon Feb 19 01:17:50 2007
@@ -0,0 +1,2 @@
+EXTRA_DIST= axis2_libcurl.h axis2_libcurl.c
+
Added: webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.in
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.in?view=auto&rev=509138
==============================================================================
--- webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.in (added)
+++ webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/Makefile.in Mon Feb 19 01:17:50 2007
@@ -0,0 +1,338 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = modules/core/transport/http/sender/libcurl
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APACHE2BUILD = @APACHE2BUILD@
+APACHE2INC = @APACHE2INC@
+APRINC = @APRINC@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+AXIS2_LIBCURL_ENABLED_FALSE = @AXIS2_LIBCURL_ENABLED_FALSE@
+AXIS2_LIBCURL_ENABLED_TRUE = @AXIS2_LIBCURL_ENABLED_TRUE@
+AXIS2_SSL_ENABLED_FALSE = @AXIS2_SSL_ENABLED_FALSE@
+AXIS2_SSL_ENABLED_TRUE = @AXIS2_SSL_ENABLED_TRUE@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DICLIENT_DIR = @DICLIENT_DIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GREP = @GREP@
+GUTHTHILA_DIR = @GUTHTHILA_DIR@
+GUTHTHILA_LIBS = @GUTHTHILA_LIBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARSER_CFLAGS = @PARSER_CFLAGS@
+PARSER_DIR = @PARSER_DIR@
+PARSER_LIBS = @PARSER_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RAMPART_DIR = @RAMPART_DIR@
+RANLIB = @RANLIB@
+SAMPLES = @SAMPLES@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TESTDIR = @TESTDIR@
+VERSION = @VERSION@
+WRAPPER_DIR = @WRAPPER_DIR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+EXTRA_DIST = axis2_libcurl.h axis2_libcurl.c
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/core/transport/http/sender/libcurl/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu modules/core/transport/http/sender/libcurl/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-exec install-exec-am \
+ install-info install-info-am install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Added: webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.c?view=auto&rev=509138
==============================================================================
--- webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.c (added)
+++ webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.c Mon Feb 19 01:17:50 2007
@@ -0,0 +1,238 @@
+#include <axis2_libcurl.h>
+#include <axiom_soap.h>
+#include <axis2_string.h>
+#include <axis2_http_transport.h>
+#include <axiom_output.h>
+#include <axis2_op_ctx.h>
+#include <axis2_ctx.h>
+#include <axis2_conf_ctx.h>
+#include <axis2_http_client.h>
+#include <axiom_xml_writer.h>
+#include <axis2_property.h>
+#include <axis2_param.h>
+#include <axis2_types.h>
+#include <axis2_generic_obj.h>
+#include <axis2_const.h>
+#include <axis2_util.h>
+
+typedef struct axis2_libcurl_memory
+{
+ axis2_char_t *memory;
+ unsigned int size;
+}axis2_libcurl_memory_t;
+
+size_t
+axis2_libcurl_write_memory_callback(void *ptr, size_t size, size_t nmemb, void *data);
+
+void *myrealloc(void *ptr, size_t size)
+{
+ /* There might be a realloc() out there that doesn't like
+ * reallocing
+ NULL pointers, so we take care of it here */
+ if(ptr)
+ return realloc(ptr, size);
+ else
+ return malloc(size);
+}
+
+
+axis2_status_t AXIS2_CALL
+axis2_libcurl_send (
+ axiom_output_t *om_output,
+ const axis2_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)
+{
+
+ CURL *handler;
+ 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;
+ axis2_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;
+ const axis2_char_t *char_set_enc = NULL;
+ axis2_char_t *content = "Content-Type:";
+ axis2_libcurl_memory_t *data;
+ handler = curl_easy_init ();
+
+ 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 (NULL == soap_body)
+ {
+ AXIS2_ERROR_SET(env->error,
+ 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));
+ return AXIS2_FAILURE;
+ }
+ body_node = AXIOM_SOAP_BODY_GET_BASE_NODE(soap_body, env);
+ if (NULL == body_node)
+ {
+ return AXIS2_FAILURE;
+ }
+ data_out = AXIOM_NODE_GET_FIRST_ELEMENT(body_node, env);
+
+ method = (axis2_property_t *)AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env,
+ AXIS2_HTTP_METHOD, AXIS2_FALSE);
+ if (method)
+ method_value = (axis2_char_t *) AXIS2_PROPERTY_GET_VALUE (method, env);
+
+ /* The default is POST */
+ if (method_value && 0 == AXIS2_STRCMP(method_value, AXIS2_HTTP_HEADER_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 = axis2_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 (doing_mtom)
+ {
+ 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 (axis2_strcmp(soap_action, ""))
+ {
+ axis2_char_t *temp_content_type = NULL;
+ temp_content_type = AXIS2_STRACAT(content_type, ";action=", env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ temp_content_type = AXIS2_STRACAT(content_type, soap_action, env);
+ 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 = AXIS2_STRACAT(content_type, ";charset=", env);
+ temp_content_type = AXIS2_STRACAT(content_type, char_set_enc, env);
+ 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 = AXIS2_STRACAT(content_type, ";charset=", env);
+ temp_content_type = AXIS2_STRACAT(content_type, char_set_enc, env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ if (axis2_strcmp(soap_action, ""))
+ {
+ temp_content_type = AXIS2_STRACAT(content_type, ";action=", env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ temp_content_type = AXIS2_STRACAT(content_type, soap_action, env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ }
+ temp_content_type = AXIS2_STRACAT(content_type, ";", env);
+ AXIS2_FREE(env->allocator, content_type);
+ content_type = temp_content_type;
+ }
+
+ }
+ else
+ {
+ axis2_property_t *content_type_property = NULL;
+ axis2_hash_t *content_type_hash = NULL;
+ axis2_char_t *content_type_value = NULL;
+
+ AXIOM_NODE_SERIALIZE(data_out, env, om_output);
+ content_type_property = (axis2_property_t *)AXIS2_MSG_CTX_GET_PROPERTY(
+ msg_ctx, env,
+ AXIS2_USER_DEFINED_HTTP_HEADER_CONTENT_TYPE,
+ AXIS2_FALSE);
+
+ if (content_type_property)
+ {
+ content_type_hash = (axis2_hash_t *) AXIS2_PROPERTY_GET_VALUE (content_type_property, env);
+ if (content_type_hash)
+ content_type_value = (char *) axis2_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);
+ buffer_size = AXIOM_XML_WRITER_GET_XML_SIZE(xml_writer, env);
+ }
+
+
+ headers = curl_slist_append (headers, "User-Agent:Axis2/C");
+ headers = curl_slist_append (headers, AXIS2_STRACAT (content,content_type, env));
+ headers = curl_slist_append (headers, "Accept:");
+ curl_easy_setopt (handler, CURLOPT_URL, str_url);
+ curl_easy_setopt (handler, CURLOPT_HTTPHEADER, headers);
+ curl_easy_setopt (handler, CURLOPT_POSTFIELDS, buffer);
+ curl_easy_setopt (handler, CURLOPT_POSTFIELDSIZE, buffer_size);
+ curl_easy_setopt (handler, CURLOPT_WRITEFUNCTION, axis2_libcurl_write_memory_callback);
+ curl_easy_setopt (handler, CURLOPT_WRITEDATA, (void *)data);
+ curl_easy_perform (handler);
+ curl_slist_free_all (headers);
+ curl_easy_cleanup (handler);
+ return AXIS2_SUCCESS;
+}
+
+size_t
+axis2_libcurl_write_memory_callback(void *ptr, size_t size, size_t nmemb, void *data)
+{
+ size_t realsize = size * nmemb;
+ axis2_libcurl_memory_t *mem = (axis2_libcurl_memory_t *)data;
+
+ mem->memory = (axis2_char_t *)myrealloc (mem->memory, mem->size + realsize + 1);
+ if (mem->memory) {
+ memcpy(&(mem->memory[mem->size]), ptr, realsize);
+ mem->size += realsize;
+ mem->memory[mem->size] = 0;
+ }
+ return realsize;
+}
Added: webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.h
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.h?view=auto&rev=509138
==============================================================================
--- webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.h (added)
+++ webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/libcurl/axis2_libcurl.h Mon Feb 19 01:17:50 2007
@@ -0,0 +1,24 @@
+#ifndef AXIS2_LIBCURL_H
+#define AXIS2_LIBCURL_H
+#include <curl/curl.h>
+#include <stdio.h>
+#include <string.h>
+#include <axis2_http_sender.h>
+#include <axis2_string.h>
+#include <axis2_types.h>
+#include <axis2_generic_obj.h>
+#include <axis2_const.h>
+#include <axis2_util.h>
+#include <axiom.h>
+
+axis2_status_t AXIS2_CALL
+axis2_libcurl_send (
+ axiom_output_t *om_output,
+ const axis2_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 */
Added: webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/sender_util.c
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/sender_util.c?view=auto&rev=509138
==============================================================================
--- webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/sender_util.c (added)
+++ webservices/axis2/scratch/c/dinesh/532/c/modules/core/transport/http/sender/sender_util.c Mon Feb 19 01:17:50 2007
@@ -0,0 +1,33 @@
+#include <axis2_soap_over_http_sender.h>
+#include <axis2_string.h>
+#include <axis2_http_transport.h>
+#include <string.h>
+#include <axiom_output.h>
+#include <axis2_op_ctx.h>
+#include <axis2_ctx.h>
+#include <axis2_conf_ctx.h>
+#include <axis2_http_client.h>
+#include <axiom_xml_writer.h>
+#include <axis2_property.h>
+#include <axis2_param.h>
+#include <axis2_types.h>
+#include <axis2_generic_obj.h>
+
+void
+axis2_http_sender_util_add_header (
+ const axis2_env_t *env,
+ axis2_http_simple_request_t *request,
+ axis2_char_t *header_name,
+ axis2_char_t *header_value);
+
+
+void
+axis2_http_sender_util_add_header (const axis2_env_t *env,
+ axis2_http_simple_request_t *request,
+ axis2_char_t *header_name,
+ axis2_char_t *header_value)
+{
+ axis2_http_header_t *http_header;
+ http_header = axis2_http_header_create(env, header_name, header_value);
+ AXIS2_HTTP_SIMPLE_REQUEST_ADD_HEADER(request, env, http_header);
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org