On Wednesday 08 November 2006 14:21, Roy Marples wrote:
> On Wednesday 08 November 2006 13:43, Roy Marples wrote:
> > Hi.
> >
> > openvpn does not apply the --txqueuelen option to persistent interfaces
> > made with --mktun [1]
> >
> > Attached are patches to 2.0.7 and 2.1_rc1 that fix the issue.
> >
> > Thanks!
> >
> > [1] http://bugs.gentoo.org/show_bug.cgi?id=150791
>
> And here are the patches - oops!

mailing list appears to be stripping attachments
Included inline

diff -u /tmp/openvpn-2.0.7/init.c openvpn-2.0.7/init.c
--- openvpn-2.0.7/init.c        2006-11-08 13:33:02.043877584 +0000
+++ openvpn-2.0.7/init.c        2006-11-08 13:33:24.000000000 +0000
@@ -347,7 +347,8 @@
        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);
       return true;
     }
 #endif
diff -u /tmp/openvpn-2.0.7/tun.c openvpn-2.0.7/tun.c
--- openvpn-2.0.7/tun.c 2006-11-08 13:33:02.037878496 +0000
+++ openvpn-2.0.7/tun.c 2006-11-08 13:34:20.000000000 +0000
@@ -1095,13 +1095,14 @@
 #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 -u /tmp/openvpn-2.0.7/tun.h openvpn-2.0.7/tun.h
--- openvpn-2.0.7/tun.h 2006-11-08 13:33:02.042877736 +0000
+++ openvpn-2.0.7/tun.h 2006-11-08 13:33:50.000000000 +0000
@@ -194,7 +194,7 @@
 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,



diff -u openvpn-2.1_rc1/init.c /tmp/openvpn-2.1_rc1/init.c
--- openvpn-2.1_rc1/init.c      2006-10-15 23:30:20.000000000 +0100
+++ openvpn-2.1_rc1/init.c      2006-11-08 13:25:04.136530544 +0000
@@ -425,7 +425,8 @@
        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 -u openvpn-2.1_rc1/tun.c /tmp/openvpn-2.1_rc1/tun.c
--- openvpn-2.1_rc1/tun.c       2006-10-15 23:30:20.000000000 +0100
+++ openvpn-2.1_rc1/tun.c       2006-11-08 13:25:04.129531608 +0000
@@ -1163,13 +1163,14 @@
 #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 -u openvpn-2.1_rc1/tun.h /tmp/openvpn-2.1_rc1/tun.h
--- openvpn-2.1_rc1/tun.h       2006-10-15 23:30:20.000000000 +0100
+++ openvpn-2.1_rc1/tun.h       2006-11-08 13:25:04.135530696 +0000
@@ -204,7 +204,7 @@
 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,


-- 
Roy Marples <r...@marples.name>

Reply via email to