[Openvpn-devel] Remove warning on pushed tun-ipv6 option.

Message ID 20171111133649.20192-1-gert@greenie.muc.de
State Superseded
Headers show
Series [Openvpn-devel] Remove warning on pushed tun-ipv6 option. | expand

Commit Message

Gert Doering Nov. 11, 2017, 2:36 a.m. UTC
tun-ipv6 is a no-op nowadays, and we print a warning to let users know -
which is not helpful for server-pushed tun-ipv6 (which might be the
result of --server-ipv6 automatically pushing this).  So, remove the
warning if parsing pushed options.

Also, remove the VERIFY_PERMISSION() call here which has side effects
on the "which class of options got pushed, do we need to act on them
later on?" flag set.

Signed-off-by: Gert Doering <gert@greenie.muc.de>
---
 src/openvpn/options.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Steffan Karger Nov. 11, 2017, 3:16 a.m. UTC | #1
Hi,

On 11-11-17 14:36, Gert Doering wrote:
> tun-ipv6 is a no-op nowadays, and we print a warning to let users know -
> which is not helpful for server-pushed tun-ipv6 (which might be the
> result of --server-ipv6 automatically pushing this).  So, remove the
> warning if parsing pushed options.
> 
> Also, remove the VERIFY_PERMISSION() call here which has side effects
> on the "which class of options got pushed, do we need to act on them
> later on?" flag set.
> 
> Signed-off-by: Gert Doering <gert@greenie.muc.de>
> ---
>  src/openvpn/options.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/src/openvpn/options.c b/src/openvpn/options.c
> index 641a26e2..bbf65613 100644
> --- a/src/openvpn/options.c
> +++ b/src/openvpn/options.c
> @@ -5233,8 +5233,10 @@ add_option(struct options *options,
>      }
>      else if (streq(p[0], "tun-ipv6") && !p[1])
>      {
> -        VERIFY_PERMISSION(OPT_P_UP);
> -        msg(M_WARN, "Note: option tun-ipv6 is ignored because modern operating systems do not need special IPv6 tun handling anymore.");
> +        if ( !(permission_mask & OPT_P_PULL_MODE) )

add_option() already has a shorthand for this:

    const bool pull_mode = BOOL_CAST(permission_mask & OPT_P_PULL_MODE);

> +        {
> +            msg(M_WARN, "Note: option tun-ipv6 is ignored because modern operating systems do not need special IPv6 tun handling anymore.");
> +        }
>      }
>  #ifdef ENABLE_IPROUTE
>      else if (streq(p[0], "iproute") && p[1] && !p[2])
> 

(I'll leave review of the correctness of the change to someone who
actually understands what tun-ipv6 exactly does.)

-Steffan

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Gert Doering Nov. 11, 2017, 3:21 a.m. UTC | #2
Hi,

On Sat, Nov 11, 2017 at 03:16:13PM +0100, Steffan Karger wrote:
> (I'll leave review of the correctness of the change to someone who
> actually understands what tun-ipv6 exactly does.)

"exactly and absolutely nothing" :-)

(It *used* to be a flag to tell openvpn "switch the tun interface into 
ipv6-compatible mode", but after Arne's revamping of this it's basically
a no-op, which we keep around for compatibility reasons with old config
files - and the warning points out that it does not do anything)

gert

Patch

diff --git a/src/openvpn/options.c b/src/openvpn/options.c
index 641a26e2..bbf65613 100644
--- a/src/openvpn/options.c
+++ b/src/openvpn/options.c
@@ -5233,8 +5233,10 @@  add_option(struct options *options,
     }
     else if (streq(p[0], "tun-ipv6") && !p[1])
     {
-        VERIFY_PERMISSION(OPT_P_UP);
-        msg(M_WARN, "Note: option tun-ipv6 is ignored because modern operating systems do not need special IPv6 tun handling anymore.");
+        if ( !(permission_mask & OPT_P_PULL_MODE) )
+        {
+            msg(M_WARN, "Note: option tun-ipv6 is ignored because modern operating systems do not need special IPv6 tun handling anymore.");
+        }
     }
 #ifdef ENABLE_IPROUTE
     else if (streq(p[0], "iproute") && p[1] && !p[2])