From b183ede15d8125d1ecba56c435e5eb70c7ac3da1 Mon Sep 17 00:00:00 2001 From: fred_nerk Date: Sun, 19 Sep 2004 23:26:46 +0000 Subject: [PATCH] Add configurable hostname --- Changes | 2 +- cli.c | 13 ++++++++----- l2tpns.c | 20 ++++++++++---------- l2tpns.h | 5 +++-- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/Changes b/Changes index ed18206..24a6b00 100644 --- a/Changes +++ b/Changes @@ -1,7 +1,7 @@ * ? David Parrish ? - Added support for hidden AVPs by Robert Clark - l2tpns-chap-response.patch from Robert Clark -- l2tpns-config-hostname.patch from Robert Clark +- merge l2tpns-config-hostname.patch from Robert Clark * Thu Sep 02 2004 David Parrish 2.0.2 - Combined LCP patches from Iain and Yuri. This should allow Windows 2k/XP diff --git a/cli.c b/cli.c index 18d59ee..8c43590 100644 --- a/cli.c +++ b/cli.c @@ -2,7 +2,7 @@ // vim: sw=8 ts=8 char const *cvs_name = "$Name: $"; -char const *cvs_id_cli = "$Id: cli.c,v 1.15 2004/09/02 04:18:07 fred_nerk Exp $"; +char const *cvs_id_cli = "$Id: cli.c,v 1.16 2004/09/19 23:26:46 fred_nerk Exp $"; #include #include @@ -103,7 +103,7 @@ int cmd_remove_plugin(struct cli_def *cli, char *command, char **argv, int argc) int cmd_uptime(struct cli_def *cli, char *command, char **argv, int argc); int regular_stuff(struct cli_def *cli); -void init_cli(char *hostname) +void init_cli() { FILE *f; char buf[4096]; @@ -113,10 +113,10 @@ void init_cli(char *hostname) struct sockaddr_in addr; cli = cli_init(); - if (hostname && *hostname) - cli_set_hostname(cli, hostname); + if (config->hostname && *config->hostname) + cli_set_hostname(cli, config->hostname); else - cli_set_hostname(cli, "l2tpns"); + 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"); @@ -258,6 +258,9 @@ void cli_do(int sockfd) } } + if (config->hostname && *config->hostname) + cli_set_hostname(cli, config->hostname); + signal(SIGPIPE, SIG_DFL); signal(SIGCHLD, SIG_DFL); signal(SIGHUP, SIG_DFL); diff --git a/l2tpns.c b/l2tpns.c index c22918a..7cc49d4 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -4,7 +4,7 @@ // Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced // vim: sw=8 ts=8 -char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.26 2004/09/19 23:19:23 fred_nerk Exp $"; +char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.27 2004/09/19 23:26:46 fred_nerk Exp $"; #include #include @@ -57,7 +57,7 @@ int snoopfd = -1; // UDP file handle for sending out intercept data int *radfds = NULL; // RADIUS requests file handles int ifrfd = -1; // File descriptor for routing, etc time_t basetime = 0; // base clock -char hostname[1000] = ""; // us. +char *hostname = NULL; // us. int tunidx; // ifr_ifindex of tun device u32 sessionid = 0; // session id for radius accounting int syslog_log = 0; // are we logging to syslog @@ -95,6 +95,7 @@ struct config_descriptt config_values[] = { CONFIG("debug", debug, INT), CONFIG("log_file", log_filename, STRING), CONFIG("pid_file", pid_file, STRING), + CONFIG("hostname", hostname, STRING), CONFIG("l2tp_secret", l2tpsecret, STRING), CONFIG("primary_dns", default_dns1, IP), CONFIG("secondary_dns", default_dns2, IP), @@ -2461,6 +2462,7 @@ void mainloop(void) void initdata(void) { int i; + char *p; if ((_statistics = shared_malloc(sizeof(struct Tstats))) == MAP_FAILED) { @@ -2547,13 +2549,11 @@ void initdata(void) for (i = 1; i < MAXTUNNEL- 1; i++) tunnel[i].state = TUNNELUNDEF; // mark it as not filled in. - if (!*hostname) - { - char *p; - // Grab my hostname unless it's been specified - gethostname(hostname, sizeof(hostname)); - if ((p = strchr(hostname, '.'))) *p = 0; - } + // Grab my hostname unless it's been specified + gethostname(config->hostname, sizeof(config->hostname)); + if ((p = strchr(config->hostname, '.'))) *p = 0; + hostname = config->hostname; + _statistics->start_time = _statistics->last_reset = time(NULL); #ifdef BGP @@ -2957,7 +2957,7 @@ int main(int argc, char *argv[]) config->debug = optdebug; init_tbf(); - init_cli(hostname); + init_cli(); read_config_file(); log(0, 0, 0, 0, "L2TPNS version " VERSION "\n"); diff --git a/l2tpns.h b/l2tpns.h index 31ee6a1..d4c8ff7 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -1,5 +1,5 @@ // L2TPNS Global Stuff -// $Id: l2tpns.h,v 1.17 2004/09/02 04:18:07 fred_nerk Exp $ +// $Id: l2tpns.h,v 1.18 2004/09/19 23:26:46 fred_nerk Exp $ #ifndef __L2TPNS_H__ #define __L2TPNS_H__ @@ -448,6 +448,7 @@ struct configt char bgp_peer[2][64]; u16 bgp_peer_as[2]; #endif + char hostname[256]; // our hostname - set to gethostname() by default }; struct config_descriptt @@ -546,7 +547,7 @@ int sessionsetup(tunnelidt t, sessionidt s); int cluster_send_session(int s); int cluster_send_tunnel(int t); int cluster_send_goodbye(); -void init_cli(char *hostname); +void init_cli(); 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