aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-09-10 20:30:01 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2019-09-10 20:30:24 +0200
commitccda6bcd423155062fd4fc8b652e05f3d4e4dc01 (patch)
treea42fe33139b8121eb95ef6293ec3776e860f2beb
parentd7276bde55c8e7fff64fdec5de07f47ad1ac01cb (diff)
sgsn_auth: Move UL check to a helper function
This same code will be re-used in next commit. Change-Id: Iedb01d20a0ccb7fccd21a4fc1da4bcf7e504f1f2
-rw-r--r--include/osmocom/sgsn/gprs_sgsn.h1
-rw-r--r--src/sgsn/sgsn_auth.c11
2 files changed, 9 insertions, 3 deletions
diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h
index 0a52a7df..0795bea0 100644
--- a/include/osmocom/sgsn/gprs_sgsn.h
+++ b/include/osmocom/sgsn/gprs_sgsn.h
@@ -480,6 +480,7 @@ int sgsn_acl_del(const char *imsi, struct sgsn_config *cfg);
/* Request authorization */
int sgsn_auth_request(struct sgsn_mm_ctx *mm);
enum sgsn_auth_state sgsn_auth_state(struct sgsn_mm_ctx *mm);
+bool sgsn_auth_needs_update_location(struct sgsn_mm_ctx *mm);
void sgsn_auth_update(struct sgsn_mm_ctx *mm);
struct gsm_auth_tuple *sgsn_auth_get_tuple(struct sgsn_mm_ctx *mmctx,
unsigned key_seq);
diff --git a/src/sgsn/sgsn_auth.c b/src/sgsn/sgsn_auth.c
index b8d80359..56dc2830 100644
--- a/src/sgsn/sgsn_auth.c
+++ b/src/sgsn/sgsn_auth.c
@@ -145,6 +145,13 @@ enum sgsn_auth_state sgsn_auth_state(struct sgsn_mm_ctx *mmctx)
return SGSN_AUTH_REJECTED;
}
+bool sgsn_auth_needs_update_location(struct sgsn_mm_ctx *mmctx)
+{
+ return sgsn->cfg.require_update_location &&
+ (mmctx->subscr == NULL ||
+ mmctx->pending_req == GSM48_MT_GMM_ATTACH_REQ);
+}
+
/*
* This function is directly called by e.g. the GMM layer. It returns either
* after calling sgsn_auth_update directly or after triggering an asynchronous
@@ -164,9 +171,7 @@ int sgsn_auth_request(struct sgsn_mm_ctx *mmctx)
return 0;
}
- need_update_location = sgsn->cfg.require_update_location &&
- (mmctx->subscr == NULL ||
- mmctx->pending_req == GSM48_MT_GMM_ATTACH_REQ);
+ need_update_location = sgsn_auth_needs_update_location(mmctx);
/* This has the side effect of registering the subscr with the mmctx */
subscr = gprs_subscr_get_or_create_by_mmctx(mmctx);