diff options
Diffstat (limited to 'src/core/transport')
-rw-r--r-- | src/core/transport/http/common/http_worker.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/core/transport/http/common/http_worker.c b/src/core/transport/http/common/http_worker.c index 8a8dfe6..353169c 100644 --- a/src/core/transport/http/common/http_worker.c +++ b/src/core/transport/http/common/http_worker.c @@ -242,12 +242,19 @@ axis2_http_worker_process_request( axis2_char_t *session_id = NULL; cookie_header_value = axis2_http_header_get_value(cookie_header, env); - session_id = axis2_http_transport_utils_get_session_id_from_cookie(env, + if(cookie_header_value) + { + session_id = axis2_http_transport_utils_get_session_id_from_cookie(env, cookie_header_value); - if(session_id) - session_str = env->get_session_fn((void *) conf_ctx, session_id); + } + if(session_id && env->get_session_fn) + { + session_str = env->get_session_fn((void *) conf_ctx, session_id); + } if(session_str) - axis2_http_transport_utils_set_session(env, msg_ctx, session_str); + { + axis2_http_transport_utils_set_session(env, msg_ctx, session_str); + } } /*connection_header = axis2_http_simple_request_get_first_header(simple_request, env, |