[Openvpn-devel,v1] route: use setenv_int_i()/setenv_str_i() for indexed route env variables

Message ID 20261104124750.18302-1-gert@greenie.muc.de
State New
Headers
Series [Openvpn-devel,v1] route: use setenv_int_i()/setenv_str_i() for indexed route env variables |

Commit Message

Gert Doering Nov. 4, 2026, 12:47 p.m. UTC
  From: Razvan Cojocaru <razvanc@mailbox.org>

setenv_route() and setenv_route_ipv6() built the route_metric_N and
route_ipv6_*_N names by hand. Use the env_set helpers instead. The
resulting variable names are unchanged.

Change-Id: If903dc58238580ec0680f2d4c908b1f949a27469
Signed-off-by: Razvan Cojocaru <razvanc@mailbox.org>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/2131
---

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/+/2131
This mail reflects revision 1 of this Change.

Acked-by according to Gerrit (reflected above):
Frank Lichtenheld <frank@lichtenheld.com>
  

Patch

diff --git a/src/openvpn/route.c b/src/openvpn/route.c
index 53550c4..6386960 100644
--- a/src/openvpn/route.c
+++ b/src/openvpn/route.c
@@ -1317,7 +1317,6 @@ 
 static void
 setenv_route(struct env_set *es, const struct route_ipv4 *r, int i)
 {
-    struct gc_arena gc = gc_new();
     if (r->flags & RT_DEFINED)
     {
         setenv_route_addr(es, "network", r->network, i);
@@ -1326,12 +1325,9 @@ 
 
         if (r->flags & RT_METRIC_DEFINED)
         {
-            struct buffer name = alloc_buf_gc(256, &gc);
-            buf_printf(&name, "route_metric_%d", i);
-            setenv_int(es, BSTR(&name), r->metric);
+            setenv_int_i(es, "route_metric", r->metric, i);
         }
     }
-    gc_free(&gc);
 }
 
 void
@@ -1351,22 +1347,15 @@ 
     struct gc_arena gc = gc_new();
     if (r6->flags & RT_DEFINED)
     {
-        struct buffer name1 = alloc_buf_gc(256, &gc);
         struct buffer val = alloc_buf_gc(256, &gc);
-        struct buffer name2 = alloc_buf_gc(256, &gc);
 
-        buf_printf(&name1, "route_ipv6_network_%d", i);
         buf_printf(&val, "%s/%u", print_in6_addr(r6->network, 0, &gc), r6->netbits);
-        setenv_str(es, BSTR(&name1), BSTR(&val));
-
-        buf_printf(&name2, "route_ipv6_gateway_%d", i);
-        setenv_str(es, BSTR(&name2), print_in6_addr(r6->gateway, 0, &gc));
+        setenv_str_i(es, "route_ipv6_network", BSTR(&val), i);
+        setenv_str_i(es, "route_ipv6_gateway", print_in6_addr(r6->gateway, 0, &gc), i);
 
         if (r6->flags & RT_METRIC_DEFINED)
         {
-            struct buffer name3 = alloc_buf_gc(256, &gc);
-            buf_printf(&name3, "route_ipv6_metric_%d", i);
-            setenv_int(es, BSTR(&name3), r6->metric);
+            setenv_int_i(es, "route_ipv6_metric", r6->metric, i);
         }
     }
     gc_free(&gc);