From 6500eac989da113bfa07e9463816a9a1413d2ff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= <frederic.leroy@b-com.com> Date: Mon, 11 Jul 2016 15:59:45 +0200 Subject: [PATCH] UE/ESM: fix esm_pt_start_timer callback --- openair3/NAS/UE/ESM/PdnConnectivity.c | 4 ++-- openair3/NAS/UE/ESM/PdnDisconnect.c | 5 ++--- openair3/NAS/UE/ESM/esm_pt.c | 4 ++-- openair3/NAS/UE/ESM/esm_pt.h | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/openair3/NAS/UE/ESM/PdnConnectivity.c b/openair3/NAS/UE/ESM/PdnConnectivity.c index 2c3b6a9bf..c355c3f80 100755 --- a/openair3/NAS/UE/ESM/PdnConnectivity.c +++ b/openair3/NAS/UE/ESM/PdnConnectivity.c @@ -309,7 +309,7 @@ int esm_proc_pdn_connectivity_request(nas_user_t *user, int is_standalone, int p if (rc != RETURNerror) { /* Start T3482 retransmission timer */ - rc = esm_pt_start_timer(pti, msg, T3482_DEFAULT_VALUE, + rc = esm_pt_start_timer(user, pti, msg, T3482_DEFAULT_VALUE, _pdn_connectivity_t3482_handler); } } @@ -642,7 +642,7 @@ static void *_pdn_connectivity_t3482_handler(void *args) if (rc != RETURNerror) { /* Restart the timer T3482 */ - rc = esm_pt_start_timer(data->pti, &data->msg, T3482_DEFAULT_VALUE, + rc = esm_pt_start_timer(user, data->pti, &data->msg, T3482_DEFAULT_VALUE, _pdn_connectivity_t3482_handler); } } else { diff --git a/openair3/NAS/UE/ESM/PdnDisconnect.c b/openair3/NAS/UE/ESM/PdnDisconnect.c index 96ec0938a..8a44e9148 100755 --- a/openair3/NAS/UE/ESM/PdnDisconnect.c +++ b/openair3/NAS/UE/ESM/PdnDisconnect.c @@ -198,7 +198,7 @@ int esm_proc_pdn_disconnect_request(nas_user_t *user, int is_standalone, int pti if (rc != RETURNerror) { /* Start T3482 retransmission timer */ - rc = esm_pt_start_timer(pti, msg, T3492_DEFAULT_VALUE, + rc = esm_pt_start_timer(user, pti, msg, T3492_DEFAULT_VALUE, _pdn_disconnect_t3492_handler); } } @@ -389,7 +389,6 @@ int esm_proc_pdn_disconnect_reject(nas_user_t *user, int pti, int *esm_cause) static void *_pdn_disconnect_t3492_handler(void *args) { LOG_FUNC_IN; - // FIXME check callback call nas_user_t *user = args; esm_data_t *esm_data = _esm_data;; int rc; @@ -418,7 +417,7 @@ static void *_pdn_disconnect_t3492_handler(void *args) if (rc != RETURNerror) { /* Restart the timer T3492 */ - rc = esm_pt_start_timer(data->pti, &data->msg, T3492_DEFAULT_VALUE, + rc = esm_pt_start_timer(user, data->pti, &data->msg, T3492_DEFAULT_VALUE, _pdn_disconnect_t3492_handler); } } else { diff --git a/openair3/NAS/UE/ESM/esm_pt.c b/openair3/NAS/UE/ESM/esm_pt.c index a4540684e..086191284 100755 --- a/openair3/NAS/UE/ESM/esm_pt.c +++ b/openair3/NAS/UE/ESM/esm_pt.c @@ -271,7 +271,7 @@ int esm_pt_release(int pti) ** Others: _esm_pt_data ** ** ** ***************************************************************************/ -int esm_pt_start_timer(int pti, const OctetString *msg, +int esm_pt_start_timer(nas_user_t *user, int pti, const OctetString *msg, long sec, nas_timer_callback_t cb) { LOG_FUNC_IN; @@ -298,6 +298,7 @@ int esm_pt_start_timer(int pti, const OctetString *msg, ctx->args = (esm_pt_timer_data_t *)malloc(sizeof(esm_pt_timer_data_t)); if (ctx->args) { + ctx->args->user = user; /* Set the EPS bearer identity */ ctx->args->pti = pti; /* Reset the retransmission counter */ @@ -315,7 +316,6 @@ int esm_pt_start_timer(int pti, const OctetString *msg, * time interval */ ctx->timer.id = nas_timer_start(sec, cb, ctx->args); ctx->timer.sec = sec; - // FIXME add user } } diff --git a/openair3/NAS/UE/ESM/esm_pt.h b/openair3/NAS/UE/ESM/esm_pt.h index df97b710d..ff76e598c 100755 --- a/openair3/NAS/UE/ESM/esm_pt.h +++ b/openair3/NAS/UE/ESM/esm_pt.h @@ -93,7 +93,7 @@ void esm_pt_initialize(void); int esm_pt_assign(void); int esm_pt_release(int pti); -int esm_pt_start_timer(int pti, const OctetString *msg, long sec, +int esm_pt_start_timer(nas_user_t *user, int pti, const OctetString *msg, long sec, nas_timer_callback_t cb); int esm_pt_stop_timer(int pti); -- GitLab