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.
diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c
index 5fe4e61..ad90d3c 100644
--- a/openbsc/src/gprs/gprs_sgsn.c
+++ b/openbsc/src/gprs/gprs_sgsn.c
@@ -638,8 +638,7 @@
 			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 a06c153..6457003 100644
--- a/openbsc/tests/sgsn/sgsn_test.c
+++ b/openbsc/tests/sgsn/sgsn_test.c
@@ -1871,6 +1871,11 @@
 	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 @@
 
 	/* 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 =