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 se...@apache.org on 2008/03/22 10:08:22 UTC
svn commit: r639968 - in /webservices/axis2/trunk/c: include/
src/core/context/ src/core/engine/ src/core/transport/http/common/
src/core/transport/http/sender/ src/core/transport/http/server/IIS/
src/core/transport/http/server/apache2/ src/core/util/
Author: senaka
Date: Sat Mar 22 02:08:20 2008
New Revision: 639968
URL: http://svn.apache.org/viewvc?rev=639968&view=rev
Log:
Fixing JIRA Issue AXIS2C-618
Added:
webservices/axis2/trunk/c/include/axis2_out_transport_info.h
Modified:
webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h
webservices/axis2/trunk/c/include/axis2_msg_ctx.h
webservices/axis2/trunk/c/src/core/context/msg_ctx.c
webservices/axis2/trunk/c/src/core/engine/engine.c
webservices/axis2/trunk/c/src/core/transport/http/common/http_out_transport_info.c
webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c
webservices/axis2/trunk/c/src/core/transport/http/sender/http_transport_sender.c
webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_worker.c
webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c
webservices/axis2/trunk/c/src/core/util/core_utils.c
Modified: webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h (original)
+++ webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h Sat Mar 22 02:08:20 2008
@@ -35,6 +35,7 @@
#include <axis2_defines.h>
#include <axutil_env.h>
#include <axis2_http_simple_response.h>
+#include <axis2_out_transport_info.h>
#ifdef __cplusplus
extern "C"
@@ -47,6 +48,7 @@
struct axis2_http_out_transport_info
{
+ axis2_out_transport_info_t out_transport;
axis2_http_simple_response_t *response;
axis2_char_t *encoding;
Modified: webservices/axis2/trunk/c/include/axis2_msg_ctx.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_msg_ctx.h?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_msg_ctx.h (original)
+++ webservices/axis2/trunk/c/include/axis2_msg_ctx.h Sat Mar 22 02:08:20 2008
@@ -121,7 +121,7 @@
struct axis2_options;
struct axis2_transport_in_desc;
struct axis2_transport_out_desc;
- struct axis2_http_out_transport_info;
+ struct axis2_out_transport_info;
/** Type name for pointer to a function to find a service */
typedef struct axis2_svc *(
@@ -1667,8 +1667,8 @@
* @param env pointer to environment struct
* @return reference to HTTP Out Transport Info associated
*/
- AXIS2_EXTERN struct axis2_http_out_transport_info *AXIS2_CALL
- axis2_msg_ctx_get_http_out_transport_info(
+ AXIS2_EXTERN struct axis2_out_transport_info *AXIS2_CALL
+ axis2_msg_ctx_get_out_transport_info(
axis2_msg_ctx_t * msg_ctx,
const axutil_env_t * env);
@@ -1676,15 +1676,15 @@
* Sets the HTTP Out Transport Info associated
* @param msg_ctx message context
* @param env pointer to environment struct
- * @param http_out_transport_info reference to HTTP Out
+ * @param out_transport_info reference to HTTP Out
* Transport Info associated
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
- axis2_msg_ctx_set_http_out_transport_info(
+ axis2_msg_ctx_set_out_transport_info(
axis2_msg_ctx_t * msg_ctx,
const axutil_env_t * env,
- struct axis2_http_out_transport_info *http_out_transport_info);
+ struct axis2_out_transport_info *out_transport_info);
/**
* Resets the HTTP Out Transport Info associated
@@ -1693,7 +1693,7 @@
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
- axis2_msg_ctx_reset_http_out_transport_info(
+ axis2_msg_ctx_reset_out_transport_info(
axis2_msg_ctx_t * msg_ctx,
const axutil_env_t * env);
Added: webservices/axis2/trunk/c/include/axis2_out_transport_info.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_out_transport_info.h?rev=639968&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_out_transport_info.h (added)
+++ webservices/axis2/trunk/c/include/axis2_out_transport_info.h Sat Mar 22 02:08:20 2008
@@ -0,0 +1,92 @@
+
+/*
+* 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.
+*/
+
+#ifndef AXIS2_OUT_TRANSPORT_INFO_H
+#define AXIS2_OUT_TRANSPORT_INFO_H
+
+/**
+ * @defgroup axis2_out_transport_info out transport info
+ * @ingroup axis2_core_trans
+ * Description
+ * @{
+ */
+
+/**
+ * @file axis2_out_transport_info.h
+ * @brief axis2 Out Transport Info
+ */
+
+#include <axis2_const.h>
+#include <axis2_defines.h>
+#include <axutil_env.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /** Type name for struct axis2_out_transport_info */
+ typedef struct axis2_out_transport_info axis2_out_transport_info_t;
+
+ typedef struct axis2_out_transport_info_ops axis2_out_transport_info_ops_t;
+
+ struct axis2_out_transport_info_ops
+ {
+ axis2_status_t(
+ AXIS2_CALL
+ * set_content_type)(
+ axis2_out_transport_info_t * info,
+ const axutil_env_t * env,
+ const axis2_char_t * content_type);
+
+ axis2_status_t(
+ AXIS2_CALL
+ * set_char_encoding)(
+ axis2_out_transport_info_t * info,
+ const axutil_env_t * env,
+ const axis2_char_t * encoding);
+
+ void(
+ AXIS2_CALL
+ * free)(
+ axis2_out_transport_info_t * info,
+ const axutil_env_t * env);
+ };
+
+ struct axis2_out_transport_info
+ {
+ const axis2_out_transport_info_ops_t *ops;
+ };
+
+ /** Set content type. */
+#define AXIS2_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE(out_transport_info, \
+ env, content_type) ((out_transport_info->ops)->set_content_type(out_transport_info, env, content_type))
+
+ /** Set cahr encoding. */
+#define AXIS2_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING(out_transport_info, \
+ env, encoding) ((out_transport_info->ops)->set_char_encoding(out_transport_info, env, encoding))
+
+ /** Free. */
+#define AXIS2_OUT_TRANSPORT_INFO_FREE(out_transport_info, env)\
+ ((out_transport_info->ops)->free(out_transport_info, env))
+
+ /** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_OUT_TRANSPORT_INFO_H */
Modified: webservices/axis2/trunk/c/src/core/context/msg_ctx.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/context/msg_ctx.c?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/context/msg_ctx.c (original)
+++ webservices/axis2/trunk/c/src/core/context/msg_ctx.c Sat Mar 22 02:08:20 2008
@@ -24,7 +24,7 @@
#include <axis2_conf.h>
#include <axis2_transport_in_desc.h>
#include <axis2_transport_out_desc.h>
-#include <axis2_http_out_transport_info.h>
+#include <axis2_out_transport_info.h>
#include <axis2_http_accept_record.h>
#include <axis2_http_header.h>
#include <axiom_soap_envelope.h>
@@ -199,7 +199,7 @@
axutil_string_t *charset_encoding;
axutil_stream_t *transport_out_stream;
- axis2_http_out_transport_info_t *http_out_transport_info;
+ axis2_out_transport_info_t *out_transport_info;
axutil_hash_t *transport_headers;
axutil_array_list_t *output_headers;
axutil_array_list_t *accept_record_list;
@@ -278,7 +278,7 @@
msg_ctx->paused_phase_index = 0;
msg_ctx->charset_encoding = NULL;
msg_ctx->transport_out_stream = NULL;
- msg_ctx->http_out_transport_info = NULL;
+ msg_ctx->out_transport_info = NULL;
msg_ctx->transport_headers = NULL;
msg_ctx->accept_record_list = NULL;
msg_ctx->accept_charset_record_list = NULL;
@@ -422,9 +422,9 @@
axutil_stream_free(msg_ctx->transport_out_stream, env);
}
- if (msg_ctx->http_out_transport_info)
+ if (msg_ctx->out_transport_info)
{
- AXIS2_HTTP_OUT_TRANSPORT_INFO_FREE(msg_ctx->http_out_transport_info,
+ AXIS2_OUT_TRANSPORT_INFO_FREE(msg_ctx->out_transport_info,
env);
}
@@ -2151,15 +2151,15 @@
return AXIS2_SUCCESS;
}
-AXIS2_EXTERN axis2_http_out_transport_info_t *AXIS2_CALL
-axis2_msg_ctx_get_http_out_transport_info(
+AXIS2_EXTERN axis2_out_transport_info_t *AXIS2_CALL
+axis2_msg_ctx_get_out_transport_info(
axis2_msg_ctx_t * msg_ctx,
const axutil_env_t * env)
{
AXIS2_PARAM_CHECK (env->error, msg_ctx, NULL);
if (msg_ctx)
{
- return msg_ctx->http_out_transport_info;
+ return msg_ctx->out_transport_info;
}
else
{
@@ -2168,21 +2168,21 @@
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_msg_ctx_set_http_out_transport_info(
+axis2_msg_ctx_set_out_transport_info(
axis2_msg_ctx_t * msg_ctx,
const axutil_env_t * env,
- axis2_http_out_transport_info_t * http_out_transport_info)
+ axis2_out_transport_info_t * out_transport_info)
{
AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);
if (msg_ctx)
{
- if (msg_ctx->http_out_transport_info)
+ if (msg_ctx->out_transport_info)
{
- AXIS2_HTTP_OUT_TRANSPORT_INFO_FREE(msg_ctx->http_out_transport_info,
+ AXIS2_OUT_TRANSPORT_INFO_FREE(msg_ctx->out_transport_info,
env);
}
- msg_ctx->http_out_transport_info = http_out_transport_info;
+ msg_ctx->out_transport_info = out_transport_info;
}
else
{
@@ -2193,14 +2193,14 @@
}
AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_msg_ctx_reset_http_out_transport_info(
+axis2_msg_ctx_reset_out_transport_info(
axis2_msg_ctx_t * msg_ctx,
const axutil_env_t * env)
{
AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);
if (msg_ctx)
{
- msg_ctx->http_out_transport_info = NULL;
+ msg_ctx->out_transport_info = NULL;
}
else
{
Modified: webservices/axis2/trunk/c/src/core/engine/engine.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/engine/engine.c?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/engine/engine.c (original)
+++ webservices/axis2/trunk/c/src/core/engine/engine.c Sat Mar 22 02:08:20 2008
@@ -26,7 +26,6 @@
#include <axiom_soap_header.h>
#include <axiom_soap_header_block.h>
#include <axis2_transport_sender.h>
-#include <axis2_http_transport.h>
#include <axis2_addr.h>
#include <axutil_uuid_gen.h>
@@ -628,9 +627,9 @@
axis2_msg_ctx_set_doing_rest (fault_ctx, env, doing_rest);
axis2_msg_ctx_set_soap_envelope(fault_ctx, env, envelope);
- axis2_msg_ctx_set_http_out_transport_info(fault_ctx, env,
- axis2_msg_ctx_get_http_out_transport_info
- (processing_context, env));
+ axis2_msg_ctx_set_out_transport_info(fault_ctx, env,
+ axis2_msg_ctx_get_out_transport_info
+ (processing_context, env));
return fault_ctx;
}
Modified: webservices/axis2/trunk/c/src/core/transport/http/common/http_out_transport_info.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/common/http_out_transport_info.c?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/common/http_out_transport_info.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/common/http_out_transport_info.c Sat Mar 22 02:08:20 2008
@@ -21,6 +21,45 @@
#include <axis2_http_transport.h>
#include <axutil_string.h>
+#define AXIS2_INTF_TO_IMPL(out_transport_info) \
+ ((axis2_http_out_transport_info_t *) \
+ (out_transport_info))
+
+axis2_status_t AXIS2_CALL
+axis2_out_transport_info_impl_set_content_type(
+ axis2_out_transport_info_t * out_transport_info,
+ const axutil_env_t * env,
+ const axis2_char_t * content_type)
+{
+ return axis2_http_out_transport_info_set_content_type(AXIS2_INTF_TO_IMPL(out_transport_info),
+ env, content_type);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_out_transport_info_impl_set_char_encoding(
+ axis2_out_transport_info_t * out_transport_info,
+ const axutil_env_t * env,
+ const axis2_char_t * encoding)
+{
+ return axis2_http_out_transport_info_set_char_encoding(AXIS2_INTF_TO_IMPL(out_transport_info),
+ env, encoding);
+}
+
+void AXIS2_CALL
+axis2_out_transport_info_impl_free(
+ axis2_out_transport_info_t * out_transport_info,
+ const axutil_env_t * env)
+{
+ axis2_http_out_transport_info_free(AXIS2_INTF_TO_IMPL(out_transport_info), env);
+ return;
+}
+
+static const axis2_out_transport_info_ops_t ops_var = {
+ axis2_out_transport_info_impl_set_content_type,
+ axis2_out_transport_info_impl_set_char_encoding,
+ axis2_out_transport_info_impl_free
+};
+
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_out_transport_info_impl_set_content_type(
axis2_http_out_transport_info_t * http_out_transport_info,
@@ -118,6 +157,7 @@
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
+ http_out_transport_info->out_transport.ops = &ops_var;
http_out_transport_info->response = response;
http_out_transport_info->encoding = NULL;
http_out_transport_info->set_char_encoding = NULL;
@@ -151,7 +191,7 @@
axis2_http_out_transport_info_t *transport_info_l = NULL;
AXIS2_ENV_CHECK(env, void);
- transport_info_l = (axis2_http_out_transport_info_t *) transport_info;
+ transport_info_l = AXIS2_INTF_TO_IMPL(transport_info);
axis2_http_out_transport_info_free(transport_info_l, env);
return;
}
Modified: webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c Sat Mar 22 02:08:20 2008
@@ -443,8 +443,8 @@
http_out_transport_info =
axis2_http_out_transport_info_create(env, response);
- axis2_msg_ctx_set_http_out_transport_info(msg_ctx, env,
- http_out_transport_info);
+ axis2_msg_ctx_set_out_transport_info(msg_ctx, env,
+ &(http_out_transport_info->out_transport));
if (axis2_http_simple_request_get_first_header(simple_request, env,
AXIS2_HTTP_HEADER_SOAP_ACTION))
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=639968&r1=639967&r2=639968&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 Sat Mar 22 02:08:20 2008
@@ -317,7 +317,8 @@
axis2_bool_t is_soap11 = AXIS2_FALSE;
axis2_op_ctx_t *op_ctx = NULL;
- out_info = axis2_msg_ctx_get_http_out_transport_info(msg_ctx, env);
+ out_info = (axis2_http_out_transport_info_t *)
+ axis2_msg_ctx_get_out_transport_info(msg_ctx, env);
if (!out_info)
{
Modified: webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_worker.c?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_worker.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/server/IIS/axis2_iis_worker.c Sat Mar 22 02:08:20 2008
@@ -194,8 +194,8 @@
}
iis_out_transport_info = axis2_iis_out_transport_info_create(env, lpECB);
- axis2_msg_ctx_set_http_out_transport_info(msg_ctx, env,
- iis_out_transport_info);
+ axis2_msg_ctx_set_out_transport_info(msg_ctx, env,
+ &(iis_out_transport_info->out_transport));
cbSize = INTERNET_MAX_URL_LENGTH;
if (lpECB->GetServerVariable(lpECB->ConnID, "HTTP_SOAPAction", soap_action, &cbSize))
{
@@ -248,8 +248,8 @@
body_str_len = (int)strlen(body_string);
/* We are sure that the difference lies within the int range */
}
- axis2_http_out_transport_info_set_content_type
- (iis_out_transport_info, env, "text/html");
+ AXIS2_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE(&(iis_out_transport_info->out_transport),
+ env, "text/html");
send_status = OK;
}
}
@@ -389,7 +389,7 @@
msg_id =
axutil_strdup(env, axis2_msg_ctx_get_msg_id(in_msg_ctx, env));
conf_ctx = axis2_msg_ctx_get_conf_ctx(in_msg_ctx, env);
- axis2_msg_ctx_reset_http_out_transport_info(in_msg_ctx, env);
+ axis2_msg_ctx_reset_out_transport_info(in_msg_ctx, env);
axis2_msg_ctx_reset_transport_out_stream(in_msg_ctx, env);
axis2_msg_ctx_free(in_msg_ctx, env);
in_msg_ctx = NULL;
Modified: webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c Sat Mar 22 02:08:20 2008
@@ -266,8 +266,8 @@
apache2_out_transport_info = axis2_apache2_out_transport_info_create(env,
request);
- axis2_msg_ctx_set_http_out_transport_info(msg_ctx, env,
- apache2_out_transport_info);
+ axis2_msg_ctx_set_out_transport_info(msg_ctx, env,
+ &(apache2_out_transport_info->out_transport));
accept_header_value = (axis2_char_t *)
apr_table_get(request->headers_in, AXIS2_HTTP_HEADER_ACCEPT);
@@ -1171,7 +1171,7 @@
msg_id =
axutil_strdup(env, axis2_msg_ctx_get_msg_id(in_msg_ctx, env));
conf_ctx = axis2_msg_ctx_get_conf_ctx(in_msg_ctx, env);
- axis2_msg_ctx_reset_http_out_transport_info(in_msg_ctx, env);
+ axis2_msg_ctx_reset_out_transport_info(in_msg_ctx, env);
axis2_msg_ctx_free(in_msg_ctx, env);
in_msg_ctx = NULL;
msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_IN] = NULL;
Modified: webservices/axis2/trunk/c/src/core/util/core_utils.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/util/core_utils.c?rev=639968&r1=639967&r2=639968&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/util/core_utils.c (original)
+++ webservices/axis2/trunk/c/src/core/util/core_utils.c Sat Mar 22 02:08:20 2008
@@ -154,9 +154,9 @@
out_stream = axis2_msg_ctx_get_transport_out_stream(in_msg_ctx, env);
axis2_msg_ctx_set_transport_out_stream(new_msg_ctx, env, out_stream);
- axis2_msg_ctx_set_http_out_transport_info(new_msg_ctx, env,
- axis2_msg_ctx_get_http_out_transport_info
- (in_msg_ctx, env));
+ axis2_msg_ctx_set_out_transport_info(new_msg_ctx, env,
+ axis2_msg_ctx_get_out_transport_info
+ (in_msg_ctx, env));
/* Setting the charater set encoding */
doing_rest = axis2_msg_ctx_get_doing_rest(in_msg_ctx, env);
@@ -204,7 +204,7 @@
axis2_msg_ctx_set_op_ctx(out_msg_ctx, env, NULL);
axis2_msg_ctx_set_svc_ctx(out_msg_ctx, env, NULL);
axis2_msg_ctx_reset_transport_out_stream(out_msg_ctx, env);
- axis2_msg_ctx_reset_http_out_transport_info(out_msg_ctx, env);
+ axis2_msg_ctx_reset_out_transport_info(out_msg_ctx, env);
axis2_msg_ctx_set_svc_grp_ctx(out_msg_ctx, env, NULL);
return;
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org