aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gprs/gb_proxy_tlli.c
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-09-08 09:59:16 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2014-09-08 10:20:16 +0200
commit18a3787296b80396ee068ee7ca5a0803c86adcdd (patch)
tree40b2a4c9930e5f1acf0d28958c5ad03211a0c666 /openbsc/src/gprs/gb_proxy_tlli.c
parent82add78f89fd8d21c647de5675e8e6304c8b8a4a (diff)
gbproxy: Check tlli_info when patching, fix APN patching
Currently the numeric TLLI or tlli_info's enable_patching flag is used to decide, whether a APN shall be patched or the secondary SGSN shall be used. Using the numeric TLLI imposes a problem, when TLLI/P-TMSI patching is used, since gbproxy_check_tlli uses the BSS side TLLI namespace when trying to get the tlli_info. This patch modifies the gbproxy_check_tlli() function to accept a tlli_info pointer instead of a numeric TLLI. The tlli_info is already available when the function is called. Since this a similar approach has been used by accessing the enable_patching flag directly, this commit unifies checking by always using this function instead of the flag outside of gb_proxy_tlli.c. This fixes the APN patching that doesn't work currently when P-TMSI patching is enabled. Sponsored-by: On-Waves ehf
Diffstat (limited to 'openbsc/src/gprs/gb_proxy_tlli.c')
-rw-r--r--openbsc/src/gprs/gb_proxy_tlli.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/openbsc/src/gprs/gb_proxy_tlli.c b/openbsc/src/gprs/gb_proxy_tlli.c
index 22585ab5e..2074308cf 100644
--- a/openbsc/src/gprs/gb_proxy_tlli.c
+++ b/openbsc/src/gprs/gb_proxy_tlli.c
@@ -369,18 +369,12 @@ static void gbproxy_unregister_tlli(struct gbproxy_peer *peer, uint32_t tlli)
}
}
-int gbproxy_check_tlli(struct gbproxy_peer *peer, uint32_t tlli)
+int gbproxy_check_tlli(struct gbproxy_peer *peer,
+ struct gbproxy_tlli_info *tlli_info)
{
- struct gbproxy_tlli_info *tlli_info;
-
- LOGP(DGPRS, LOGL_INFO, "Checking TLLI %08x, class: %d\n",
- tlli, gprs_tlli_type(tlli));
-
if (!peer->cfg->check_imsi)
return 1;
- tlli_info = gbproxy_find_tlli(peer, tlli);
-
return tlli_info != NULL && tlli_info->enable_patching;
}