From 0b06de8105dd567cb2d120770b2101afacce5f33 Mon Sep 17 00:00:00 2001 From: Benjamin Cama Date: Mon, 19 Sep 2011 18:10:03 +0200 Subject: [PATCH] Set hostname /after/ having read the config file. Signed-off-by: Benjamin Cama --- cli.c | 14 +++++++++----- l2tpns.c | 17 ++++++++--------- l2tpns.h | 3 ++- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/cli.c b/cli.c index 3a037fa..32c82a9 100644 --- a/cli.c +++ b/cli.c @@ -133,7 +133,7 @@ static int cmd_show_access_list(struct cli_def *cli, char *command, char **argv, /* match if b is a substr of a */ #define MATCH(a,b) (!strncmp((a), (b), strlen(b))) -void init_cli(char *hostname) +void init_cli() { FILE *f; char buf[4096]; @@ -143,10 +143,6 @@ void init_cli(char *hostname) struct sockaddr_in addr; cli = cli_init(); - if (hostname && *hostname) - cli_set_hostname(cli, hostname); - else - cli_set_hostname(cli, "l2tpns"); c = cli_register_command(cli, NULL, "show", NULL, PRIVILEGE_UNPRIVILEGED, MODE_EXEC, NULL); cli_register_command(cli, c, "banana", cmd_show_banana, PRIVILEGE_UNPRIVILEGED, MODE_EXEC, "Show a banana"); @@ -301,6 +297,14 @@ void init_cli(char *hostname) } } +void cli_init_hostname(char *hostname) +{ + if (hostname && *hostname) + cli_set_hostname(cli, hostname); + else + cli_set_hostname(cli, "l2tpns"); +} + void cli_do(int sockfd) { int require_auth = 1; diff --git a/l2tpns.c b/l2tpns.c index dca810f..31a183a 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -4294,14 +4294,9 @@ static void initdata(int optdebug, char *optconfig) if (!*hostname) { - if (!*config->hostname) - { - // Grab my hostname unless it's been specified - gethostname(hostname, sizeof(hostname)); - stripdomain(hostname); - } - else - strcpy(hostname, config->hostname); + // Grab my hostname unless it's been specified + gethostname(hostname, sizeof(hostname)); + stripdomain(hostname); } _statistics->start_time = _statistics->last_reset = time(NULL); @@ -4716,8 +4711,12 @@ int main(int argc, char *argv[]) initplugins(); initdata(optdebug, optconfig); - init_cli(hostname); + init_cli(); read_config_file(); + /* set hostname /after/ having read the config file */ + if (*config->hostname) + strcpy(hostname, config->hostname); + cli_init_hostname(hostname); update_config(); init_tbf(config->num_tbfs); diff --git a/l2tpns.h b/l2tpns.h index 5cba32c..f226380 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -907,7 +907,8 @@ void become_master(void); // We're the master; kick off any required master init // cli.c -void init_cli(char *hostname); +void init_cli(); +void cli_init_hostname(char *hostname); void cli_do_file(FILE *fh); void cli_do(int sockfd); int cli_arg_help(struct cli_def *cli, int cr_ok, char *entry, ...); -- 2.20.1