summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/receivers/msg_recv.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/core/receivers/msg_recv.c b/src/core/receivers/msg_recv.c
index 87bcc1d..f1fed27 100644
--- a/src/core/receivers/msg_recv.c
+++ b/src/core/receivers/msg_recv.c
@@ -139,9 +139,17 @@ axis2_msg_recv_load_and_init_svc_impl(
if(impl_class)
{
- axis2_conf_t *conf = NULL;
- conf = axis2_conf_ctx_get_conf(msg_recv->conf_ctx, env);
- AXIS2_SVC_SKELETON_INIT((axis2_svc_skeleton_t *)impl_class, env);
+ axis2_svc_skeleton_t *skel = (axis2_svc_skeleton_t *)impl_class;
+ axis2_conf_t *conf = NULL;
+ conf = axis2_conf_ctx_get_conf(msg_recv->conf_ctx, env);
+ if (skel->ops->init)
+ {
+ AXIS2_SVC_SKELETON_INIT(skel, env);
+ }
+ if (skel->ops->init_with_conf)
+ {
+ AXIS2_SVC_SKELETON_INIT_WITH_CONF(skel, env, conf);
+ }
}
axis2_svc_set_impl_class(svc, env, impl_class);