nat: Add vty option for number rewriting
Parse a msg file in case we do have a list.
This commit is contained in:
parent
0586b0fa47
commit
76424392e0
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include <osmocore/select.h>
|
||||
#include <osmocore/msgb.h>
|
||||
#include <osmocore/msgfile.h>
|
||||
#include <osmocore/timer.h>
|
||||
#include <osmocore/write_queue.h>
|
||||
#include <osmocore/rate_ctr.h>
|
||||
|
@ -237,6 +238,10 @@ struct bsc_nat {
|
|||
/* filter */
|
||||
char *acc_lst_name;
|
||||
|
||||
/* number rewriting */
|
||||
char *num_rewr_name;
|
||||
struct msg_entries *num_rewr;
|
||||
|
||||
/* USSD messages we want to match */
|
||||
char *ussd_lst_name;
|
||||
char *ussd_query;
|
||||
|
|
|
@ -87,6 +87,9 @@ static int config_write_nat(struct vty *vty)
|
|||
if (_nat->ussd_local)
|
||||
vty_out(vty, " ussd-local-ip %s%s", _nat->ussd_local, VTY_NEWLINE);
|
||||
|
||||
if (_nat->num_rewr_name)
|
||||
vty_out(vty, " number-rewrite %s%s", _nat->num_rewr_name, VTY_NEWLINE);
|
||||
|
||||
llist_for_each_entry(lst, &_nat->access_lists, list) {
|
||||
write_acc_lst(vty, lst);
|
||||
}
|
||||
|
@ -403,6 +406,25 @@ DEFUN(cfg_nat_acc_lst_name,
|
|||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN(cfg_nat_number_rewrite,
|
||||
cfg_nat_number_rewrite_cmd,
|
||||
"number-rewrite FILENAME",
|
||||
"Set the file with rewriting rules.\n" "Filename")
|
||||
{
|
||||
bsc_replace_string(_nat, &_nat->num_rewr_name, argv[0]);
|
||||
if (_nat->num_rewr_name) {
|
||||
if (_nat->num_rewr)
|
||||
talloc_free(_nat->num_rewr);
|
||||
_nat->num_rewr = msg_entry_parse(_nat, _nat->num_rewr_name);
|
||||
return _nat->num_rewr == NULL ? CMD_WARNING : CMD_SUCCESS;
|
||||
} else {
|
||||
if (_nat->num_rewr)
|
||||
talloc_free(_nat->num_rewr);
|
||||
_nat->num_rewr = NULL;
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
DEFUN(cfg_nat_ussd_lst_name,
|
||||
cfg_nat_ussd_lst_name_cmd,
|
||||
"ussd-list-name NAME",
|
||||
|
@ -688,6 +710,9 @@ int bsc_nat_vty_init(struct bsc_nat *nat)
|
|||
install_element(NAT_NODE, &cfg_lst_imsi_deny_cmd);
|
||||
install_element(NAT_NODE, &cfg_lst_no_cmd);
|
||||
|
||||
/* number rewriting */
|
||||
install_element(NAT_NODE, &cfg_nat_number_rewrite_cmd);
|
||||
|
||||
/* BSC subgroups */
|
||||
install_element(NAT_NODE, &cfg_bsc_cmd);
|
||||
install_node(&bsc_node, config_write_bsc);
|
||||
|
|
Loading…
Reference in New Issue