fix VTY parsing: subscriber-create-on-demand random
Fix parsing of the 'subscriber-create-on-demand random' VTY: atoi() is not enough to include the specified range of 1-9999999999. Use atoll() instead to ensure a large enough number space also on 32bit systems. (Note: for me, atoll() truncates at 32 bit when <stdlib.h> is not included.) Add a VTY regression test for this. Related: OS#2253 Change-Id: I353e04481ec567adca383d6b51ba8fb865eed73e
This commit is contained in:
parent
5121576b0c
commit
34ce3d93c5
|
@ -1079,7 +1079,7 @@ DEFUN(cfg_nitb_subscr_random, cfg_nitb_subscr_random_cmd,
|
|||
"Minimum for subscriber extension\n""Maximum for subscriber extension\n")
|
||||
{
|
||||
struct gsm_network *gsmnet = gsmnet_from_vty(vty);
|
||||
uint64_t mi = atoi(argv[0]), ma = atoi(argv[1]);
|
||||
uint64_t mi = atoll(argv[0]), ma = atoll(argv[1]);
|
||||
gsmnet->auto_create_subscr = true;
|
||||
gsmnet->auto_assign_exten = true;
|
||||
if (mi >= ma) {
|
||||
|
|
|
@ -476,6 +476,17 @@ class TestVTYNITB(TestVTYGenericBSC):
|
|||
res = self.vty.command('show subscriber imsi '+imsi)
|
||||
self.assert_(('% No subscriber found for imsi ' + imsi) == res)
|
||||
|
||||
# range
|
||||
self.vty.command("end")
|
||||
self.vty.command("configure terminal")
|
||||
self.vty.command("nitb")
|
||||
self.assertTrue(self.vty.verify("subscriber-create-on-demand random 9999999998 9999999999", ['']))
|
||||
res = self.vty.command("show running-config")
|
||||
self.assert_(res.find("subscriber-create-on-demand random 9999999998 9999999999"))
|
||||
self.vty.command("end")
|
||||
|
||||
|
||||
|
||||
def testSubscriberSettings(self):
|
||||
self.vty.enable()
|
||||
|
||||
|
|
Loading…
Reference in New Issue