From fafb0742683fb069ea88355c513290c6bb4373b4 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Fri, 8 Apr 2016 18:02:20 +0200 Subject: sgsn: Reset mm ctx state in service request and after authorization --- openbsc/src/gprs/gprs_gmm.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'openbsc/src') diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c index 2b8581be6..a3a8f4aed 100644 --- a/openbsc/src/gprs/gprs_gmm.c +++ b/openbsc/src/gprs/gprs_gmm.c @@ -777,6 +777,7 @@ static int gsm48_gmm_authorize(struct sgsn_mm_ctx *ctx) "no pending request, authorization completed\n"); break; case GSM48_MT_GMM_ATTACH_REQ: + ctx->pending_req = 0; extract_subscr_msisdn(ctx); extract_subscr_hlr(ctx); @@ -802,6 +803,7 @@ static int gsm48_gmm_authorize(struct sgsn_mm_ctx *ctx) return rc; case GSM48_MT_GMM_RA_UPD_REQ: + ctx->pending_req = 0; /* Send RA UPDATE ACCEPT */ return gsm48_tx_gmm_ra_upd_ack(ctx); @@ -1545,6 +1547,8 @@ static int gsm48_rx_gmm_service_req(struct sgsn_mm_ctx *ctx, struct msgb *msg) goto rejected; } + ctx->mm_state = GMM_COMMON_PROC_INIT; + ctx->iu.service.type = service_type; /* TODO: Handle those only in case of accept? */ -- cgit v1.2.3