]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Linux: Only set positive reachable timers
authorRoy Marples <roy@marples.name>
Wed, 29 Apr 2020 14:31:49 +0000 (15:31 +0100)
committerRoy Marples <roy@marples.name>
Wed, 29 Apr 2020 14:31:49 +0000 (15:31 +0100)
src/if-linux.c

index c2e7b9a744ff3b396ba56799b65ea5cc39f2ac76..cc59e5722b5e9e7692ad676548d962d026ae1ee5 100644 (file)
@@ -2007,18 +2007,25 @@ if_applyra(const struct ra *rap)
        struct dhcpcd_ctx *ctx = rap->iface->ctx;
        int error = 0;
 
-       snprintf(path, sizeof(path), "%s/%s/hop_limit", p_conf, ifname);
-       if (if_writepathuint(ctx, path, rap->hoplimit) == -1)
-               error = -1;
-
-       snprintf(path, sizeof(path), "%s/%s/retrans_time_ms", p_neigh, ifname);
-       if (if_writepathuint(ctx, path, rap->retrans) == -1)
-               error = -1;
-
-       snprintf(path, sizeof(path), "%s/%s/base_reachable_time_ms",
-           p_neigh, ifname);
-       if (if_writepathuint(ctx, path, rap->reachable) == -1)
-               error = -1;
+       if (rap->hoplimit != 0) {
+               snprintf(path, sizeof(path), "%s/%s/hop_limit", p_conf, ifname);
+               if (if_writepathuint(ctx, path, rap->hoplimit) == -1)
+                       error = -1;
+       }
+
+       if (rap->retrans != 0) {
+               snprintf(path, sizeof(path), "%s/%s/retrans_time_ms",
+                   p_neigh, ifname);
+               if (if_writepathuint(ctx, path, rap->retrans) == -1)
+                       error = -1;
+       }
+
+       if (rap->reachable != 0) {
+               snprintf(path, sizeof(path), "%s/%s/base_reachable_time_ms",
+                   p_neigh, ifname);
+               if (if_writepathuint(ctx, path, rap->reachable) == -1)
+                       error = -1;
+       }
 
        return error;
 }