You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-commits@axis.apache.org by sh...@apache.org on 2011/10/06 07:45:03 UTC
svn commit: r1179507 -
/axis/axis2/c/core/trunk/src/core/clientapi/op_client.c
Author: shankar
Date: Thu Oct 6 05:45:03 2011
New Revision: 1179507
URL: http://svn.apache.org/viewvc?rev=1179507&view=rev
Log:
Calling INfaultflow when received message has a fault.
Modified:
axis/axis2/c/core/trunk/src/core/clientapi/op_client.c
Modified: axis/axis2/c/core/trunk/src/core/clientapi/op_client.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/clientapi/op_client.c?rev=1179507&r1=1179506&r2=1179507&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/clientapi/op_client.c (original)
+++ axis/axis2/c/core/trunk/src/core/clientapi/op_client.c Thu Oct 6 05:45:03 2011
@@ -1218,7 +1218,12 @@ axis2_op_client_two_way_send(
response_envelope = axis2_msg_ctx_get_response_soap_envelope(msg_ctx, env);
if(response_envelope)
{
+ axiom_soap_body_t * soap_body = NULL;
+ axis2_bool_t has_fault = AXIS2_FALSE;
axis2_msg_ctx_set_soap_envelope(response, env, response_envelope);
+ soap_body = axiom_soap_envelope_get_body(response_envelope, env);
+ has_fault = axiom_soap_body_has_fault(soap_body, env);
+
engine = axis2_engine_create(env, conf_ctx);
if(engine)
{
@@ -1235,10 +1240,17 @@ axis2_op_client_two_way_send(
return response;
}
}
- status = axis2_engine_receive(engine, env, response);
- if(status != AXIS2_SUCCESS )
- return NULL;
- }
+ if(has_fault)
+ {
+ status = axis2_engine_receive_fault(engine, env, msg_ctx);
+ }
+ else
+ {
+ status = axis2_engine_receive(engine, env, response);
+ }
+ if(status != AXIS2_SUCCESS )
+ return NULL;
+ }
}
else
{