make sure subscr->net is always set

since a subscriber is an element of the gsm_network, we have to ensure
subscr->net is always set correctly.  We do this by using gsm_network
as an argument to all functions that resolve or create a subscriber.
diff --git a/openbsc/src/db.c b/openbsc/src/db.c
index fb58900..57c5c85 100644
--- a/openbsc/src/db.c
+++ b/openbsc/src/db.c
@@ -158,12 +158,13 @@
 	return 0;
 }
 
-struct gsm_subscriber* db_create_subscriber(char *imsi) {
+struct gsm_subscriber* db_create_subscriber(struct gsm_network *net, char *imsi)
+{
 	dbi_result result;
 	struct gsm_subscriber* subscr;
 
 	/* Is this subscriber known in the db? */
-	subscr = db_get_subscriber(GSM_SUBSCRIBER_IMSI, imsi); 
+	subscr = db_get_subscriber(net, GSM_SUBSCRIBER_IMSI, imsi); 
 	if (subscr) {
 		result = dbi_conn_queryf(conn,
                          "UPDATE Subscriber set updated = datetime('now') "
@@ -189,6 +190,7 @@
 	if (result==NULL) {
 		printf("DB: Failed to create Subscriber by IMSI.\n");
 	}
+	subscr->net = net;
 	subscr->id = dbi_conn_sequence_last(conn, NULL);
 	strncpy(subscr->imsi, imsi, GSM_IMSI_LENGTH-1);
 	dbi_result_free(result);
@@ -196,7 +198,10 @@
 	return subscr;
 }
 
-struct gsm_subscriber *db_get_subscriber(enum gsm_subscriber_field field, const char *id) {
+struct gsm_subscriber *db_get_subscriber(struct gsm_network *net,
+					 enum gsm_subscriber_field field,
+					 const char *id)
+{
 	dbi_result result;
 	const char *string;
 	char *quoted;
@@ -253,6 +258,7 @@
 	}
 
 	subscr = subscr_alloc();
+	subscr->net = net;
 	subscr->id = dbi_result_get_ulonglong(result, "id");
 	string = dbi_result_get_string(result, "imsi");
 	if (string)
@@ -470,7 +476,7 @@
 }
 
 /* retrieve the next unsent SMS with ID >= min_id */
-struct gsm_sms *db_sms_get_unsent(int min_id)
+struct gsm_sms *db_sms_get_unsent(struct gsm_network *net, int min_id)
 {
 	dbi_result result;
 	long long unsigned int sender_id, receiver_id;
@@ -494,11 +500,11 @@
 
 	sender_id = dbi_result_get_ulonglong(result, "sender_id");
 	sprintf(buf, "%llu", sender_id);
-	sms->sender = db_get_subscriber(GSM_SUBSCRIBER_ID, buf); 
+	sms->sender = db_get_subscriber(net, GSM_SUBSCRIBER_ID, buf); 
 
 	receiver_id = dbi_result_get_ulonglong(result, "receiver_id");
 	sprintf(buf, "%llu", receiver_id);
-	sms->receiver = db_get_subscriber(GSM_SUBSCRIBER_ID, buf); 
+	sms->receiver = db_get_subscriber(net, GSM_SUBSCRIBER_ID, buf); 
 
 	/* FIXME: fill header */