diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-17 07:20:00 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-17 07:31:08 +0200 |
commit | 941839b3008a1bbd7f89180532f98a8303032ce3 (patch) | |
tree | 497c7f63b55f865c2a215bdcfc6a4794b5f88024 /openbsc/src/nat/bsc_nat.c | |
parent | 23a0e46f113cc362109970dbe26aba58b4a09f60 (diff) |
nat: Move MSC ip address into the config..
The address can still be specified on the cli and it will
overwrite the config in the config file.
Diffstat (limited to 'openbsc/src/nat/bsc_nat.c')
-rw-r--r-- | openbsc/src/nat/bsc_nat.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c index 65e491dc2..f4180abb6 100644 --- a/openbsc/src/nat/bsc_nat.c +++ b/openbsc/src/nat/bsc_nat.c @@ -51,10 +51,10 @@ struct log_target *stderr_target; static const char *config_file = "bsc-nat.cfg"; -static char *msc_address = "127.0.0.1"; static struct in_addr local_addr; static struct bsc_msc_connection *msc_con; static struct bsc_fd bsc_listen; +static const char *msc_ip = NULL; static struct bsc_nat *nat; @@ -782,7 +782,7 @@ static void handle_options(int argc, char** argv) log_set_print_timestamp(stderr_target, 1); break; case 'm': - msc_address = strdup(optarg); + msc_ip = optarg; break; case 'l': inet_aton(optarg, &local_addr); @@ -815,10 +815,6 @@ int main(int argc, char** argv) log_add_target(stderr_target); log_set_all_filter(stderr_target, 1); - /* parse options */ - local_addr.s_addr = INADDR_ANY; - handle_options(argc, argv); - nat = bsc_nat_alloc(); if (!nat) { fprintf(stderr, "Failed to allocate the BSC nat.\n"); @@ -826,6 +822,14 @@ int main(int argc, char** argv) } nat->mgcp_cfg = talloc_zero(nat, struct mgcp_config); + if (!nat->mgcp_cfg) { + fprintf(stderr, "Failed to allocate MGCP cfg.\n"); + return -5; + } + + /* parse options */ + local_addr.s_addr = INADDR_ANY; + handle_options(argc, argv); /* init vty and parse */ bsc_nat_vty_init(nat); @@ -835,6 +839,10 @@ int main(int argc, char** argv) return -3; } + /* over rule the VTY config */ + if (msc_ip) + bsc_nat_set_msc_ip(nat, msc_ip); + /* seed the PRNG */ srand(time(NULL)); @@ -845,7 +853,7 @@ int main(int argc, char** argv) return -4; /* connect to the MSC */ - msc_con = bsc_msc_create(msc_address, 5000); + msc_con = bsc_msc_create(nat->msc_ip, 5000); if (!msc_con) { fprintf(stderr, "Creating a bsc_msc_connection failed.\n"); exit(1); |