--- doc/man-sections/script-options.rst | 4 ++-- src/openvpn/route.c | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/doc/man-sections/script-options.rst b/doc/man-sections/script-options.rst index b4bbf52f..062646b2 100644 --- a/doc/man-sections/script-options.rst +++ b/doc/man-sections/script-options.rst @@ -710,10 +710,10 @@ instances. A set of variables which define each IPv6 route to be added, and are set prior to **--up** script execution. - ``parm`` will be one of :code:`network` or :code:`gateway` + ``parm`` will be one of :code:`network`, :code:`gateway` (:code:`netmask` is contained as :code:`/nnn` in the ``route_ipv6_network_{n}``, unlike IPv4 where it is passed in a - separate environment variable). + separate environment variable) or :code:`metric`. ``n`` is the OpenVPN route number, starting from 1. diff --git a/src/openvpn/route.c b/src/openvpn/route.c index f127a90a..7174f518 100644 --- a/src/openvpn/route.c +++ b/src/openvpn/route.c @@ -1463,6 +1463,7 @@ setenv_route_ipv6(struct env_set *es, const struct route_ipv6 *r6, int i) struct buffer name1 = alloc_buf_gc( 256, &gc ); struct buffer val = alloc_buf_gc( 256, &gc ); struct buffer name2 = alloc_buf_gc( 256, &gc ); + struct buffer name3 = alloc_buf_gc( 256, &gc ); buf_printf( &name1, "route_ipv6_network_%d", i ); buf_printf( &val, "%s/%d", print_in6_addr( r6->network, 0, &gc ), @@ -1471,6 +1472,11 @@ setenv_route_ipv6(struct env_set *es, const struct route_ipv6 *r6, int i) buf_printf( &name2, "route_ipv6_gateway_%d", i ); setenv_str( es, BSTR(&name2), print_in6_addr( r6->gateway, 0, &gc )); + + if (r6->flags & RT_METRIC_DEFINED) { + buf_printf( &name3, "route_ipv6_metric_%d", i) ; + setenv_int( es, BSTR(&name3), r6->metric); + } } gc_free(&gc); } -- 2.26.2 _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel