diff options
Diffstat (limited to 'src/core/receivers')
-rw-r--r-- | src/core/receivers/msg_recv.c | 14 |
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); |