aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/src/libmsc/db.c8
-rw-r--r--openbsc/tests/vty_test_runner.py11
2 files changed, 15 insertions, 4 deletions
diff --git a/openbsc/src/libmsc/db.c b/openbsc/src/libmsc/db.c
index 9fa64152f..5fe2a3c6b 100644
--- a/openbsc/src/libmsc/db.c
+++ b/openbsc/src/libmsc/db.c
@@ -1260,13 +1260,13 @@ int db_subscriber_alloc_exten(struct gsm_subscriber *subscriber, uint64_t smin,
uint64_t smax)
{
dbi_result result = NULL;
- uint32_t try;
+ uint64_t try;
for (;;) {
try = (rand() % (smax - smin + 1) + smin);
result = dbi_conn_queryf(conn,
"SELECT * FROM Subscriber "
- "WHERE extension = %i",
+ "WHERE extension = %"PRIu64,
try
);
if (!result) {
@@ -1284,8 +1284,8 @@ int db_subscriber_alloc_exten(struct gsm_subscriber *subscriber, uint64_t smin,
}
dbi_result_free(result);
}
- sprintf(subscriber->extension, "%i", try);
- DEBUGP(DDB, "Allocated extension %i for IMSI %s.\n", try, subscriber->imsi);
+ sprintf(subscriber->extension, "%"PRIu64, try);
+ DEBUGP(DDB, "Allocated extension %"PRIu64 " for IMSI %s.\n", try, subscriber->imsi);
return db_sync_subscriber(subscriber);
}
/*
diff --git a/openbsc/tests/vty_test_runner.py b/openbsc/tests/vty_test_runner.py
index b8869116f..92775d5b7 100644
--- a/openbsc/tests/vty_test_runner.py
+++ b/openbsc/tests/vty_test_runner.py
@@ -485,6 +485,17 @@ class TestVTYNITB(TestVTYGenericBSC):
self.assert_(res.find("subscriber-create-on-demand random 9999999998 9999999999"))
self.vty.command("end")
+ res = self.vty.command('subscriber create imsi ' + imsi)
+ print(res)
+ self.assert_(res.find(" IMSI: " + imsi) > 0)
+ self.assert_(res.find("9999999998") > 0 or res.find("9999999999") > 0)
+ self.assert_(res.find(" Extension: ") > 0)
+
+ res = self.vty.command('subscriber imsi ' + imsi + ' delete')
+ self.assert_("" == res)
+
+ res = self.vty.command('show subscriber imsi '+imsi)
+ self.assert_(('% No subscriber found for imsi ' + imsi) == res)
def testSubscriberSettings(self):