diff options
author | Alberto Gonzalez Iniesta <agi@inittab.org> | 2014-10-29 17:43:51 +0100 |
---|---|---|
committer | Alberto Gonzalez Iniesta <agi@inittab.org> | 2014-10-29 17:43:51 +0100 |
commit | 4d0c77888c6b17b11390eaefe41e14229365c463 (patch) | |
tree | 76db22e48b28d96f16a7ce0111109b00b6f519c3 /src/openvpn/route.c | |
parent | 52a3e3b0ad96506d705d1759f5a41b40563167ec (diff) | |
parent | 63862ed15e1abb4b29c5a43b469321c928613c62 (diff) |
Merge tag 'upstream/2.3.5'
Upstream version 2.3.5
Diffstat (limited to 'src/openvpn/route.c')
-rw-r--r-- | src/openvpn/route.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/openvpn/route.c b/src/openvpn/route.c index 532edc6..cc85e4d 100644 --- a/src/openvpn/route.c +++ b/src/openvpn/route.c @@ -1318,15 +1318,18 @@ add_route (struct route_ipv4 *r, #if defined(TARGET_LINUX) #ifdef ENABLE_IPROUTE - /* FIXME -- add on-link support for ENABLE_IPROUTE */ - argv_printf (&argv, "%s route add %s/%d via %s", + argv_printf (&argv, "%s route add %s/%d", iproute_path, network, - count_netmask_bits(netmask), - gateway); + count_netmask_bits(netmask)); + if (r->flags & RT_METRIC_DEFINED) argv_printf_cat (&argv, "metric %d", r->metric); + if (is_on_link (is_local_route, flags, rgi)) + argv_printf_cat (&argv, "dev %s", rgi->iface); + else + argv_printf_cat (&argv, "via %s", gateway); #else argv_printf (&argv, "%s add -net %s netmask %s", ROUTE_PATH, |