diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2015-05-24 20:51:17 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2015-05-25 14:38:01 +0800 |
commit | 9270d99f3db58e70d50ad45644b039b3fa314574 (patch) | |
tree | 216aa1390b7c0668df1126bed86536430aeefa6a | |
parent | 5e4b88cbb2d754d691a858a3ff99bcdc7ed9c7ce (diff) |
sgsn: If there is a subscr don't allow an empty list
This is a left-over from the initial system where no PDP
was provided by the system. For now if there is a subscr
attached and no PDP context provisioned. He is not allowed
to have a data connection.
Update the testcase to create the pdp list entry more
early with a wildcard and then change it to a specific
match.
-rw-r--r-- | openbsc/src/gprs/gprs_sgsn.c | 3 | ||||
-rw-r--r-- | openbsc/tests/sgsn/sgsn_test.c | 9 |
2 files changed, 6 insertions, 6 deletions
diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c index 5fe4e616e..ad90d3c16 100644 --- a/openbsc/src/gprs/gprs_sgsn.c +++ b/openbsc/src/gprs/gprs_sgsn.c @@ -638,8 +638,7 @@ struct sgsn_ggsn_ctx *sgsn_mm_ctx_find_ggsn_ctx(struct sgsn_mm_ctx *mmctx, req_apn_str[0] = 0; } - if (mmctx->subscr == NULL || - llist_empty(&mmctx->subscr->sgsn_data->pdp_list)) + if (mmctx->subscr == NULL) allow_any_apn = 1; if (strlen(req_apn_str) == 0 && !allow_any_apn) { diff --git a/openbsc/tests/sgsn/sgsn_test.c b/openbsc/tests/sgsn/sgsn_test.c index a06c1532a..64570038e 100644 --- a/openbsc/tests/sgsn/sgsn_test.c +++ b/openbsc/tests/sgsn/sgsn_test.c @@ -1871,6 +1871,11 @@ static void test_ggsn_selection(void) actxs[2] = sgsn_apn_ctx_find_alloc("*", "456789"); actxs[2]->ggsn = ggcs[2]; + pdp_data = sgsn_subscriber_pdp_data_alloc(s1->sgsn_data); + pdp_data->context_id = 1; + pdp_data->pdp_type = 0x0121; + strncpy(pdp_data->apn_str, "*", sizeof(pdp_data->apn_str)-1); + /* Resolve GGSNs */ tp.lv[GSM48_IE_GSM_APN].len = @@ -1917,10 +1922,6 @@ static void test_ggsn_selection(void) /* Add PDP data entry to subscriber */ - pdp_data = sgsn_subscriber_pdp_data_alloc(s1->sgsn_data); - pdp_data->context_id = 1; - - pdp_data->pdp_type = 0x0121; strncpy(pdp_data->apn_str, "Test.Apn", sizeof(pdp_data->apn_str)-1); tp.lv[GSM48_IE_GSM_APN].len = |