db: Remove the struct gsm_network from the database layer

The database code should not know about the network. Move the
setting of the network pointer into the subscriber layer.
diff --git a/openbsc/src/libmsc/gsm_subscriber.c b/openbsc/src/libmsc/gsm_subscriber.c
index 5ace8f6..bc6f3cf 100644
--- a/openbsc/src/libmsc/gsm_subscriber.c
+++ b/openbsc/src/libmsc/gsm_subscriber.c
@@ -78,6 +78,15 @@
 	REQ_STATE_DISPATCHED,
 };
 
+static struct gsm_subscriber *get_subscriber(struct gsm_network *net,
+						int type, const char *ident)
+{
+	struct gsm_subscriber *subscr = db_get_subscriber(type, ident);
+	if (subscr)
+		subscr->net = net;
+	return subscr;
+}
+
 /*
  * We got the channel assigned and can now hand this channel
  * over to one of our callbacks.
@@ -266,6 +275,14 @@
 		subscr_send_paging_request(subscr);
 }
 
+struct gsm_subscriber *subscr_create_subscriber(struct gsm_network *net,
+					const char *imsi)
+{
+	struct gsm_subscriber *subscr = db_create_subscriber(imsi);
+	if (subscr)
+		subscr->net = net;
+	return subscr;
+}
 
 struct gsm_subscriber *subscr_get_by_tmsi(struct gsm_network *net,
 					  uint32_t tmsi)
@@ -280,7 +297,7 @@
 	}
 
 	sprintf(tmsi_string, "%u", tmsi);
-	return db_get_subscriber(net, GSM_SUBSCRIBER_TMSI, tmsi_string);
+	return get_subscriber(net, GSM_SUBSCRIBER_TMSI, tmsi_string);
 }
 
 struct gsm_subscriber *subscr_get_by_imsi(struct gsm_network *net,
@@ -293,7 +310,7 @@
 			return subscr_get(subscr);
 	}
 
-	return db_get_subscriber(net, GSM_SUBSCRIBER_IMSI, imsi);
+	return get_subscriber(net, GSM_SUBSCRIBER_IMSI, imsi);
 }
 
 struct gsm_subscriber *subscr_get_by_extension(struct gsm_network *net,
@@ -306,7 +323,7 @@
 			return subscr_get(subscr);
 	}
 
-	return db_get_subscriber(net, GSM_SUBSCRIBER_EXTENSION, ext);
+	return get_subscriber(net, GSM_SUBSCRIBER_EXTENSION, ext);
 }
 
 struct gsm_subscriber *subscr_get_by_id(struct gsm_network *net,
@@ -321,7 +338,7 @@
 			return subscr_get(subscr);
 	}
 
-	return db_get_subscriber(net, GSM_SUBSCRIBER_ID, buf);
+	return get_subscriber(net, GSM_SUBSCRIBER_ID, buf);
 }
 
 int subscr_update_expire_lu(struct gsm_subscriber *s, struct gsm_bts *bts)