From 2e2d587e7b82122b35df9c5b7194637efe033e49 Mon Sep 17 00:00:00 2001 From: Mathieu Parent Date: Fri, 21 May 2010 15:41:41 +0200 Subject: [PATCH] Skinny: one more fix for MODSKINNY-1 (on_hook) --- src/mod/endpoints/mod_skinny/skinny_server.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/mod/endpoints/mod_skinny/skinny_server.c b/src/mod/endpoints/mod_skinny/skinny_server.c index ab47d8553b..83e46c918c 100644 --- a/src/mod/endpoints/mod_skinny/skinny_server.c +++ b/src/mod/endpoints/mod_skinny/skinny_server.c @@ -1235,14 +1235,16 @@ switch_status_t skinny_handle_off_hook_message(listener_t *listener, skinny_mess switch_status_t skinny_handle_on_hook_message(listener_t *listener, skinny_message_t *request) { switch_status_t status = SWITCH_STATUS_SUCCESS; - switch_core_session_t *session = NULL; uint32_t line_instance = 0; + uint32_t call_id = 0; + switch_core_session_t *session = NULL; - skinny_check_data_length(request, sizeof(request->data.on_hook)); + if(skinny_check_data_length_soft(request, sizeof(request->data.on_hook))) { + line_instance = request->data.on_hook.line_instance; + call_id = request->data.on_hook.call_id; + } - line_instance = request->data.on_hook.line_instance; - - session = skinny_profile_find_session(listener->profile, listener, &line_instance, request->data.on_hook.call_id); + session = skinny_profile_find_session(listener->profile, listener, &line_instance, call_id); if(session) { switch_channel_t *channel = NULL;