From: Benjamin Cama Date: Mon, 25 Jul 2011 18:07:14 +0000 (+0200) Subject: Add an "hostname" config option. X-Git-Tag: debian/2.2.1-1fdn1~1^2~3 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/fd021320eca6d370c46de3893c113b4fd72f6f9a?hp=3d9333a6cbe22f3961849e595ae801cccc4a72fb Add an "hostname" config option. It is overridden by the -h command line option. Signed-off-by: Benjamin Cama --- diff --git a/etc/startup-config.default b/etc/startup-config.default index 5e3f930..1b88dc2 100644 --- a/etc/startup-config.default +++ b/etc/startup-config.default @@ -7,6 +7,9 @@ set log_file "/var/log/l2tpns" # Write pid to this file set pid_file "/var/run/l2tpns.pid" +# This host name, if different from the OS one +#set hostname "localhost" + # Shared secret with LAC set l2tp_secret "secret" diff --git a/l2tpns.c b/l2tpns.c index f966a78..b745b3f 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -69,7 +69,7 @@ int rand_fd = -1; // Random data source int cluster_sockfd = -1; // Intra-cluster communications socket. int epollfd = -1; // event polling time_t basetime = 0; // base clock -char hostname[1000] = ""; // us. +char hostname[MAXHOSTNAME] = ""; // us. static int tunidx; // ifr_ifindex of tun device static int syslog_log = 0; // are we logging to syslog static FILE *log_stream = 0; // file handle for direct logging (i.e. direct into file, not via syslog). @@ -158,6 +158,7 @@ config_descriptt config_values[] = { CONFIG("cluster_master_min_adv", cluster_master_min_adv, INT), CONFIG("ipv6_prefix", ipv6_prefix, IPv6), CONFIG("cli_bind_address", cli_bind_address, IPv4), + CONFIG("hostname", hostname, STRING), { NULL, 0, 0, 0 }, }; @@ -4068,9 +4069,14 @@ static void initdata(int optdebug, char *optconfig) if (!*hostname) { - // Grab my hostname unless it's been specified - gethostname(hostname, sizeof(hostname)); - stripdomain(hostname); + if (!*config->hostname) + { + // Grab my hostname unless it's been specified + gethostname(hostname, sizeof(hostname)); + stripdomain(hostname); + } + else + strcpy(hostname, config->hostname); } _statistics->start_time = _statistics->last_reset = time(NULL); diff --git a/l2tpns.h b/l2tpns.h index 76e9aa2..4df0a5a 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -38,6 +38,7 @@ #define PPPoE_MRU 1492 // maximum PPPoE MRU (rfc2516: 1500 less PPPoE header (6) and PPP protocol ID (2)) #define MAXETHER (MAXMTU+18) // max packet we try sending to tun #define MAXTEL 96 // telephone number +#define MAXHOSTNAME 256 // hostname #define MAXUSER 128 // username #define MAXPASS 128 // password #define MAXPLUGINS 20 // maximum number of plugins to load @@ -713,6 +714,7 @@ typedef struct int cluster_master_min_adv; // Master advertises routes while the number of up to date // slaves is less than this value. in_addr_t cli_bind_address; // bind address for CLI + char hostname[MAXHOSTNAME]; // hostname (overridden by -h on command line) // Guest change char guest_user[MAXUSER]; // Guest account username