From f9243ffec5567b4ee24d349fb3866cc111e0c9a7 Mon Sep 17 00:00:00 2001 From: fendo Date: Fri, 21 Dec 2012 14:13:00 +0100 Subject: [PATCH] Add tundevicename configuration option --- debian/changelog | 7 +++++++ l2tpns.c | 13 +++++++++---- l2tpns.h | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5a25673..bcba095 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +l2tpns (2.2.1-2fdn3.1) unstable; urgency=low + + * Add tundevicename configuration option + * Fix: last_packet no updated in cluster mode + + -- Fernando Alves Fri, 21 Dec 2012 11:41:42 +0100 + l2tpns (2.2.1-2fdn3) unstable; urgency=low * LAC functionality merged from dev-lac branch. diff --git a/l2tpns.c b/l2tpns.c index d9a9bd3..5f3b865 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -179,6 +179,7 @@ config_descriptt config_values[] = { CONFIG("echo_timeout", echo_timeout, INT), CONFIG("idle_echo_timeout", idle_echo_timeout, INT), CONFIG("iftun_address", iftun_address, IPv4), + CONFIG("tundevicename", tundevicename, STRING), #ifdef LAC CONFIG("disable_lac_func", disable_lac_func, BOOL), CONFIG("bind_address_remotelns", bind_address_remotelns, IPv4), @@ -690,15 +691,19 @@ static void inittun(void) int flags = fcntl(tunfd, F_GETFL, 0); fcntl(tunfd, F_SETFL, flags | O_NONBLOCK); } + + if (*config->tundevicename) + strncpy(ifr.ifr_name, config->tundevicename, IFNAMSIZ); + if (ioctl(tunfd, TUNSETIFF, (void *) &ifr) < 0) { LOG(0, 0, 0, "Can't set tun interface: %s\n", strerror(errno)); exit(1); } - assert(strlen(ifr.ifr_name) < sizeof(config->tundevice) - 1); - strncpy(config->tundevice, ifr.ifr_name, sizeof(config->tundevice)); + assert(strlen(ifr.ifr_name) < sizeof(config->tundevicename) - 1); + strncpy(config->tundevicename, ifr.ifr_name, sizeof(config->tundevicename)); - tunidx = if_nametoindex(config->tundevice); + tunidx = if_nametoindex(config->tundevicename); if (tunidx == 0) { LOG(0, 0, 0, "Can't get tun interface index\n"); @@ -5039,7 +5044,7 @@ int main(int argc, char *argv[]) exit(1); inittun(); - LOG(1, 0, 0, "Set up on interface %s\n", config->tundevice); + LOG(1, 0, 0, "Set up on interface %s\n", config->tundevicename); initudp(); initrad(); diff --git a/l2tpns.h b/l2tpns.h index 0d07ae3..ba9a56f 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -658,7 +658,7 @@ typedef struct int reload_config; // flag to re-read config (set by cli) int multi_read_count; // amount of packets to read per fd in processing loop - char tundevice[IFNAMSIZ]; // tun device name + char tundevicename[IFNAMSIZ]; // tun device name char log_filename[128]; char l2tp_secret[64]; // L2TP shared secret -- 2.20.1