From abdf02b9b988a816201b4530f36f709ca4c146ac Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Fri, 31 Oct 2014 12:20:49 +0100 Subject: sgsn: Split gsm0408_gprs_force_reattach into 2 functions This patch replaces gsm0408_gprs_force_reattach(msg, mmctx) by two functions - gsm0408_gprs_force_reattach(mmctx) - gsm0408_gprs_force_reattach_oldmsg(msg) The old function basically consists of the code of the two new functions, where the code path selected depends on mmctx == NULL, which is harder to maintain, less obvious to use, and not consistent with many other SGSN functions. Sponsored-by: On-Waves ehf --- openbsc/src/gprs/gprs_gmm.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'openbsc/src/gprs/gprs_gmm.c') diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c index 389123d05..711981680 100644 --- a/openbsc/src/gprs/gprs_gmm.c +++ b/openbsc/src/gprs/gprs_gmm.c @@ -1689,16 +1689,21 @@ static int gsm0408_rcv_gsm(struct sgsn_mm_ctx *mmctx, struct msgb *msg, return rc; } -int gsm0408_gprs_force_reattach(struct msgb *msg, struct sgsn_mm_ctx *mmctx) +int gsm0408_gprs_force_reattach_oldmsg(struct msgb *msg) { + int rc; gprs_llgmm_reset_oldmsg(msg, GPRS_SAPI_GMM); - if (!mmctx) - return gsm48_tx_gmm_detach_req_oldmsg( - msg, GPRS_DET_T_MT_REATT_REQ, GMM_CAUSE_IMPL_DETACHED); + rc = gsm48_tx_gmm_detach_req_oldmsg( + msg, GPRS_DET_T_MT_REATT_REQ, GMM_CAUSE_IMPL_DETACHED); + + return rc; +} - /* Mark MM state as deregistered initiated */ - mmctx->mm_state = GMM_DEREGISTERED_INIT; +int gsm0408_gprs_force_reattach(struct sgsn_mm_ctx *mmctx) +{ + int rc; + gprs_llgmm_reset(mmctx->llme); /* Delete all existing PDP contexts for this MS */ delete_pdp_contexts(mmctx, "forced reattach"); -- cgit v1.2.3