From: james Date: Thu, 9 Nov 2006 09:49:14 +0000 (+0000) Subject: Fixed issue where OpenVPN does not apply the --txqueuelen option X-Git-Tag: v2.1_rc2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=004d8b48a8962828b3f63227fdf0667d3c3b18af;p=thirdparty%2Fopenvpn.git Fixed issue where OpenVPN does not apply the --txqueuelen option to persistent interfaces made with --mktun (Roy Marples). git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@1447 e7ae566f-a301-0410-adde-c780ea21d3b5 --- diff --git a/init.c b/init.c index 1712cb29c..2eb18962a 100644 --- a/init.c +++ b/init.c @@ -425,7 +425,8 @@ do_persist_tuntap (const struct options *options) msg (M_FATAL|M_OPTERR, "options --mktun or --rmtun should only be used together with --dev"); tuncfg (options->dev, options->dev_type, options->dev_node, - options->tun_ipv6, options->persist_mode); + options->tun_ipv6, options->persist_mode, + &options->tuntap_options); if (options->persist_mode && options->lladdr) set_lladdr(options->dev, options->lladdr, NULL); return true; diff --git a/tun.c b/tun.c index 3166b32ed..abfd760ed 100644 --- a/tun.c +++ b/tun.c @@ -1163,13 +1163,14 @@ open_tun (const char *dev, const char *dev_type, const char *dev_node, bool ipv6 #ifdef TUNSETPERSIST void -tuncfg (const char *dev, const char *dev_type, const char *dev_node, bool ipv6, int persist_mode) +tuncfg (const char *dev, const char *dev_type, const char *dev_node, bool ipv6, int persist_mode, const struct tuntap_options *options) { struct tuntap *tt; ALLOC_OBJ (tt, struct tuntap); clear_tuntap (tt); tt->type = dev_type_enum (dev, dev_type); + tt->options = *options; open_tun (dev, dev_type, dev_node, ipv6, tt); if (ioctl (tt->fd, TUNSETPERSIST, persist_mode) < 0) msg (M_ERR, "Cannot ioctl TUNSETPERSIST(%d) %s", persist_mode, dev); diff --git a/tun.h b/tun.h index 508e4a597..4d6653345 100644 --- a/tun.h +++ b/tun.h @@ -204,7 +204,7 @@ int write_tun (struct tuntap* tt, uint8_t *buf, int len); int read_tun (struct tuntap* tt, uint8_t *buf, int len); void tuncfg (const char *dev, const char *dev_type, const char *dev_node, - bool ipv6, int persist_mode); + bool ipv6, int persist_mode, const struct tuntap_options *options); const char *guess_tuntap_dev (const char *dev, const char *dev_type,