summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar damitha2010-07-05 03:24:31 +0000
committerGravatar damitha2010-07-05 03:24:31 +0000
commit876bda819321a2632bdd30989030746f17e38770 (patch)
treea8d19bf6e8fd6a5702dea85d4a8f5749711c0fa1
parentbf9669e447f268940d93b5073f742b6187721d6d (diff)
downloadaxis2c-876bda819321a2632bdd30989030746f17e38770.tar.gz
axis2c-876bda819321a2632bdd30989030746f17e38770.tar.bz2
In http 1.0 Keep-Alive false case transport sender is freed prematurely at http_transport_sender. Because of this, although soap message comes through the wire it cannot be processed.
git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@960429 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/core/transport/http/sender/http_transport_sender.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/core/transport/http/sender/http_transport_sender.c b/src/core/transport/http/sender/http_transport_sender.c
index 3ef55b0..6dc43fa 100644
--- a/src/core/transport/http/sender/http_transport_sender.c
+++ b/src/core/transport/http/sender/http_transport_sender.c
@@ -777,12 +777,14 @@ axis2_http_transport_sender_write_message(
status = AXIS2_HTTP_SENDER_SEND(sender, env, msg_ctx, out, url, soap_action);
#endif
- AXIS2_HTTP_SENDER_FREE(sender, env);
- sender = NULL;
/* if the send was not successful, do not process any response */
if(status != AXIS2_SUCCESS)
+ {
+ AXIS2_HTTP_SENDER_FREE(sender, env);
+ sender = NULL;
return status;
+ }
op = axis2_msg_ctx_get_op(msg_ctx, env);
if(op)
@@ -793,6 +795,8 @@ axis2_http_transport_sender_write_message(
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)
{
+ AXIS2_HTTP_SENDER_FREE(sender, env);
+ sender = NULL;
return status;
}
else
@@ -811,6 +815,9 @@ axis2_http_transport_sender_write_message(
}
}
+ AXIS2_HTTP_SENDER_FREE(sender, env);
+ sender = NULL;
+
return status;
}