Fix binding of the cli to the configured address

We used to read the configuration file /after/ binding the cli. Fix that.

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
This commit is contained in:
Benjamin Cama 2012-01-30 00:16:41 +01:00
parent e7d32f2da8
commit bceebb9a9d
3 changed files with 13 additions and 12 deletions

21
cli.c
View file

@ -139,8 +139,6 @@ void init_cli()
char buf[4096]; char buf[4096];
struct cli_command *c; struct cli_command *c;
struct cli_command *c2; struct cli_command *c2;
int on = 1;
struct sockaddr_in addr;
cli = cli_init(); cli = cli_init();
@ -268,6 +266,17 @@ void init_cli()
} }
fclose(f); fclose(f);
} }
}
void cli_init_complete(char *hostname)
{
int on = 1;
struct sockaddr_in addr;
if (hostname && *hostname)
cli_set_hostname(cli, hostname);
else
cli_set_hostname(cli, "l2tpns");
memset(&addr, 0, sizeof(addr)); memset(&addr, 0, sizeof(addr));
clifd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); clifd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
@ -297,14 +306,6 @@ void init_cli()
} }
} }
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) void cli_do(int sockfd)
{ {
int require_auth = 1; int require_auth = 1;

View file

@ -4717,7 +4717,7 @@ int main(int argc, char *argv[])
/* set hostname /after/ having read the config file */ /* set hostname /after/ having read the config file */
if (*config->hostname) if (*config->hostname)
strcpy(hostname, config->hostname); strcpy(hostname, config->hostname);
cli_init_hostname(hostname); cli_init_complete(hostname);
update_config(); update_config();
init_tbf(config->num_tbfs); init_tbf(config->num_tbfs);

View file

@ -911,7 +911,7 @@ void become_master(void); // We're the master; kick off any required master init
// cli.c // cli.c
void init_cli(); void init_cli();
void cli_init_hostname(char *hostname); void cli_init_complete(char *hostname);
void cli_do_file(FILE *fh); void cli_do_file(FILE *fh);
void cli_do(int sockfd); void cli_do(int sockfd);
int cli_arg_help(struct cli_def *cli, int cr_ok, char *entry, ...); int cli_arg_help(struct cli_def *cli, int cr_ok, char *entry, ...);