diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2017-02-03 02:42:47 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2017-03-16 15:32:29 +0100 |
commit | d20e7483d0872270a38d83efe1b7a14e87fe37de (patch) | |
tree | 19110266eb7f2879abb4c2f81943039a6f6549f4 /openbsc/src/libcommon-cs | |
parent | 067991aeb2b404f120678bd618ebd15614de3446 (diff) |
Use libvlr in libmsc (large refactoring)
Original libvlr code is by Harald Welte <laforge@gnumonks.org>,
polished and tweaked by Neels Hofmeyr <nhofmeyr@sysmocom.de>.
This is a long series of development collapsed in one patch. The original
history may still be available as branch neels/vlr_orig.
TODO: This commit may be split in several smaller changes before merging to
master.
Related: OS#1592
Change-Id: I702ba504ce2de93507312c28eca8d11f09f4ee8b
Diffstat (limited to 'openbsc/src/libcommon-cs')
-rw-r--r-- | openbsc/src/libcommon-cs/common_cs.c | 7 | ||||
-rw-r--r-- | openbsc/src/libcommon-cs/common_cs_vty.c | 22 |
2 files changed, 19 insertions, 10 deletions
diff --git a/openbsc/src/libcommon-cs/common_cs.c b/openbsc/src/libcommon-cs/common_cs.c index 7905802bf..20fbab8c4 100644 --- a/openbsc/src/libcommon-cs/common_cs.c +++ b/openbsc/src/libcommon-cs/common_cs.c @@ -49,17 +49,10 @@ struct gsm_network *gsm_network_init(void *ctx, if (!net) return NULL; - net->subscr_group = talloc_zero(net, struct gsm_subscriber_group); - if (!net->subscr_group) { - talloc_free(net); - return NULL; - } - if (gsm_parse_reg(net, &net->authorized_regexp, &net->authorized_reg_str, 1, &default_regexp) != 0) return NULL; - net->subscr_group->net = net; net->auto_create_subscr = true; net->auto_assign_exten = true; diff --git a/openbsc/src/libcommon-cs/common_cs_vty.c b/openbsc/src/libcommon-cs/common_cs_vty.c index 08a758151..80af33de1 100644 --- a/openbsc/src/libcommon-cs/common_cs_vty.c +++ b/openbsc/src/libcommon-cs/common_cs_vty.c @@ -168,6 +168,20 @@ DEFUN(cfg_net_encryption, return CMD_SUCCESS; } +DEFUN(cfg_net_authentication, + cfg_net_authentication_cmd, + "authentication (optional|required)", + "Whether to enforce MS authentication in 2G\n" + "Allow MS to attach via 2G BSC without authentication\n" + "Always do authentication\n") +{ + struct gsm_network *gsmnet = gsmnet_from_vty(vty); + + gsmnet->authentication_required = (argv[0][0] == 'r') ? true : false; + + return CMD_SUCCESS; +} + DEFUN(cfg_net_rrlp_mode, cfg_net_rrlp_mode_cmd, "rrlp mode (none|ms-based|ms-preferred|ass-preferred)", "Radio Resource Location Protocol\n" @@ -203,9 +217,10 @@ DEFUN(cfg_net_subscr_keep, "Keep unused subscribers in RAM.\n" "Delete unused subscribers\n" "Keep unused subscribers\n") { - struct gsm_network *gsmnet = gsmnet_from_vty(vty); - gsmnet->subscr_group->keep_subscr = atoi(argv[0]); - return CMD_SUCCESS; + vty_out(vty, "%% subscriber-keep-in-ram is currently not implemented%s", + VTY_NEWLINE); + /* TODO add a libvlr mechanism to keep vlr_subscrs in RAM? */ + return CMD_WARNING; } DEFUN(cfg_net_timezone, @@ -289,6 +304,7 @@ int common_cs_vty_init(struct gsm_network *network, install_element(GSMNET_NODE, &cfg_net_authorize_regexp_cmd); install_element(GSMNET_NODE, &cfg_net_reject_cause_cmd); install_element(GSMNET_NODE, &cfg_net_encryption_cmd); + install_element(GSMNET_NODE, &cfg_net_authentication_cmd); install_element(GSMNET_NODE, &cfg_net_rrlp_mode_cmd); install_element(GSMNET_NODE, &cfg_net_mm_info_cmd); install_element(GSMNET_NODE, &cfg_net_subscr_keep_cmd); |