You are viewing a plain text version of this content. The canonical link for it is here.
Posted to savan-dev@ws.apache.org by da...@apache.org on 2009/03/18 12:06:55 UTC
svn commit: r755546 -
/webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c
Author: damitha
Date: Wed Mar 18 11:06:55 2009
New Revision: 755546
URL: http://svn.apache.org/viewvc?rev=755546&view=rev
Log:
Adding soap fault messages to message receiver
Modified:
webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c
Modified: webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c
URL: http://svn.apache.org/viewvc/webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c?rev=755546&r1=755545&r2=755546&view=diff
==============================================================================
--- webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c (original)
+++ webservices/savan/trunk/c/src/msgreceivers/savan_msg_recv.c Wed Mar 18 11:06:55 2009
@@ -106,6 +106,7 @@
axis2_msg_ctx_t *new_msg_ctx)
{
savan_message_types_t msg_type = SAVAN_MSG_TYPE_UNKNOWN;
+ axis2_status_t status = AXIS2_SUCCESS;
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
"[savan] Entry:savan_msg_recv_invoke_business_logic_sync");
@@ -114,31 +115,45 @@
msg_type = savan_util_get_message_type(msg_ctx, env);
if (msg_type == SAVAN_MSG_TYPE_SUB)
{
- savan_msg_recv_handle_sub_request(env, msg_ctx, new_msg_ctx);
+ status = savan_msg_recv_handle_sub_request(env, msg_ctx, new_msg_ctx);
}
else if (msg_type == SAVAN_MSG_TYPE_UNSUB)
{
- savan_msg_recv_handle_unsub_request(env, msg_ctx, new_msg_ctx);
+ status = savan_msg_recv_handle_unsub_request(env, msg_ctx, new_msg_ctx);
}
else if (msg_type == SAVAN_MSG_TYPE_RENEW)
{
- savan_msg_recv_handle_renew_request(env, msg_ctx, new_msg_ctx);
+ status = savan_msg_recv_handle_renew_request(env, msg_ctx, new_msg_ctx);
}
else if (msg_type == SAVAN_MSG_TYPE_GET_STATUS)
{
- savan_msg_recv_handle_get_status_request(env, msg_ctx, new_msg_ctx);
+ status = savan_msg_recv_handle_get_status_request(env, msg_ctx, new_msg_ctx);
}
else
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Unhandled message type");
+ status = AXIS2_FAILURE;
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[savan] Unhandled message type");
AXIS2_ERROR_SET(env->error, SAVAN_ERROR_UNHANDLED_MSG_TYPE, AXIS2_FAILURE);
- return AXIS2_FAILURE;
}
+ if(AXIS2_SUCCESS != status)
+ {
+ axis2_char_t *reason = NULL;
+
+ axutil_error_set_error_number(env->error, SAVAN_ERROR_REQUESTED_DELIVERY_MODE_NOT_SUPPORTED);
+ reason = (axis2_char_t *) axutil_error_get_message(env->error);
+ savan_util_create_fault_envelope(msg_ctx, env,
+ SAVAN_FAULT_ESUP_CODE,
+ SAVAN_FAULT_ESUP_SUB_CODE,
+ reason,
+ SAVAN_FAULT_ESUP_DETAIL);
+ return status;
+ }
+
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
"[savan] Entry:savan_msg_recv_invoke_business_logic_sync");
- return AXIS2_SUCCESS;
+ return status;
}
axis2_status_t AXIS2_CALL