aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc/db.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/libmsc/db.c')
-rw-r--r--openbsc/src/libmsc/db.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/db.c b/openbsc/src/libmsc/db.c
index 4e20e2318..3ec5ccd8a 100644
--- a/openbsc/src/libmsc/db.c
+++ b/openbsc/src/libmsc/db.c
@@ -315,6 +315,28 @@ int db_fini(void)
return 0;
}
+int db_get_active_subscribers(void) {
+ dbi_result result;
+ const char *res;
+ unsigned subscriber = 0;
+ result = dbi_conn_queryf(conn,
+ "SELECT COUNT(ID) AS C FROM Subscriber WHERE LAC != 0 AND AUTHORIZED=1");
+
+ if (!result) {
+ LOGP(DDB, LOGL_ERROR, "failed to get active subscribers\n");
+ return subscriber;
+ }
+ if (!dbi_result_next_row(result)) {
+ dbi_result_free(result);
+ LOGP(DDB, LOGL_ERROR, "dbi_result_next_row() returned NULL\n");
+ return subscriber;
+ }
+ res = dbi_result_get_string(result, "C");
+ subscriber = atoi(res);
+
+ return subscriber;
+}
+
struct gsm_subscriber *db_create_subscriber(struct gsm_network *net, char *imsi)
{
dbi_result result;