[Openvpn-devel,v2] get_default_gateway(): implement platform support for Linux/SITNL

Message ID 20250131084651.24765-1-gert@greenie.muc.de
State Accepted
Headers show
Series [Openvpn-devel,v2] get_default_gateway(): implement platform support for Linux/SITNL | expand

Commit Message

Gert Doering Jan. 31, 2025, 8:46 a.m. UTC
This adds Linux/SITNL platform functionality to the framework started by
commit 9df51cf56 and commit 0fcfc8381f.

v2: make comment reflect reality

Change-Id: I1db72d7dca648a8ea4ec65d173290a819971305c
Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: Antonio Quartulli <a@unstable.cc>
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/883
This mail reflects revision 2 of this Change.

Acked-by according to Gerrit (reflected above):
Antonio Quartulli <a@unstable.cc>

Comments

Gert Doering Jan. 31, 2025, 9:36 a.m. UTC | #1
Tested on a local gentoo system, with "the usual" questions
(--show-gateway, --show-gateway 127.0.0.1, --show-gateway <on lan>, ...).

Patch has been applied to the master branch.

commit f28c254da58c7a48592c2c63c0a98b38283405e8
Author: Gert Doering
Date:   Fri Jan 31 09:46:51 2025 +0100

     get_default_gateway(): implement platform support for Linux/SITNL

     Signed-off-by: Gert Doering <gert@greenie.muc.de>
     Acked-by: Antonio Quartulli <a@unstable.cc>
     Message-Id: <20250131084651.24765-1-gert@greenie.muc.de>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg30749.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/src/openvpn/route.c b/src/openvpn/route.c
index 3501e35..dd37fb9 100644
--- a/src/openvpn/route.c
+++ b/src/openvpn/route.c
@@ -3332,8 +3332,8 @@ 
     CLEAR(*rgi);
     CLEAR(best_name);
 
-    /* get default gateway IP addr */
-    if (net_route_v4_best_gw(ctx, NULL, &rgi->gateway.addr, best_name) == 0)
+    /* find best route to 'dest', get gateway IP addr + interface */
+    if (net_route_v4_best_gw(ctx, &dest, &rgi->gateway.addr, best_name) == 0)
     {
         rgi->flags |= RGI_ADDR_DEFINED;
         if (!rgi->gateway.addr && best_name[0])