[Openvpn-devel] Make error in setting metric for IPv6 interface non-fatal

Message ID 20230322151550.1596669-1-selva.nair@gmail.com
State Accepted
Headers show
Series [Openvpn-devel] Make error in setting metric for IPv6 interface non-fatal | expand

Commit Message

Selva Nair March 22, 2023, 3:15 p.m. UTC
From: Selva Nair <selva.nair@gmail.com>

- Unfortunately there are still users out there who disable IPv6
  on tun/tap/dco interfaces or even system-wide.

Fixes: Github issue #294
Signed-off-by: Selva Nair <selva.nair@gmail.com>
---
 src/openvpnserv/interactive.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Lev Stipakov March 22, 2023, 3:55 p.m. UTC | #1
I reproduced the bug by disabling IPv6 on the DCO adapter and verified
that this patch fixes the problem. Code looks obvious enough.

Could there be clients with IPv6 enabled and IPv4 disabled? :)

Acked-by: Lev Stipakov <lstipakov@gmail.com>

ke 22. maalisk. 2023 klo 17.16 selva.nair@gmail.com kirjoitti:
>
> From: Selva Nair <selva.nair@gmail.com>
>
> - Unfortunately there are still users out there who disable IPv6
>   on tun/tap/dco interfaces or even system-wide.
>
> Fixes: Github issue #294
> Signed-off-by: Selva Nair <selva.nair@gmail.com>
> ---
>  src/openvpnserv/interactive.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c
> index a3d43752..98a42b1f 100644
> --- a/src/openvpnserv/interactive.c
> +++ b/src/openvpnserv/interactive.c
> @@ -847,8 +847,8 @@ AddBlockDNS(const block_dns_message_t *msg, undo_lists_t *lists)
>                                         BLOCK_DNS_IFACE_METRIC);
>              if (!err)
>              {
> -                err = set_interface_metric(msg->iface.index, AF_INET6,
> -                                           BLOCK_DNS_IFACE_METRIC);
> +                set_interface_metric(msg->iface.index, AF_INET6,
> +                                     BLOCK_DNS_IFACE_METRIC);
>              }
>              if (err)
>              {
> --
> 2.34.1
>
>
>
> _______________________________________________
> Openvpn-devel mailing list
> Openvpn-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openvpn-devel
Gert Doering March 22, 2023, 4:03 p.m. UTC | #2
Acked-by: Gert Doering <gert@greenie.muc.de>

"Trivially correct" according to #294 - same code, just ignoring errors.

I have MinGW-build-tested this, but didn't feel like disabling IPv6 on
one of my dear machines to test for real (plus, I currently do not have
a working "MinGW build with iservice" setup).

I have added an explanatory comment on why we are intentionally not 
checking errors in this place while we do it everywhere else (otherwise
someone will come in 6 months and point out that "you are missing an
return value check there!" :-) ).

Your patch has been applied to the master and release/2.6 branch.

commit b8ee8c43fd81988a58343da466999d2e30ae6221 (master)
commit 5babbc78fa27f84039e94b545d03c7049c8bd9c9 (release/2.6)
Author: Selva Nair
Date:   Wed Mar 22 11:15:50 2023 -0400

     Make error in setting metric for IPv6 interface non-fatal

     Signed-off-by: Selva Nair <selva.nair@gmail.com>
     Acked-by: Gert Doering <gert@greenie.muc.de>
     Message-Id: <20230322151550.1596669-1-selva.nair@gmail.com>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26477.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c
index a3d43752..98a42b1f 100644
--- a/src/openvpnserv/interactive.c
+++ b/src/openvpnserv/interactive.c
@@ -847,8 +847,8 @@  AddBlockDNS(const block_dns_message_t *msg, undo_lists_t *lists)
                                        BLOCK_DNS_IFACE_METRIC);
             if (!err)
             {
-                err = set_interface_metric(msg->iface.index, AF_INET6,
-                                           BLOCK_DNS_IFACE_METRIC);
+                set_interface_metric(msg->iface.index, AF_INET6,
+                                     BLOCK_DNS_IFACE_METRIC);
             }
             if (err)
             {