From: Roy Marples Date: Wed, 29 Apr 2020 14:31:49 +0000 (+0100) Subject: Linux: Only set positive reachable timers X-Git-Tag: v9.1.0~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b33cdb4f6159cb53ab2f848cbe818c09f8bc3895;p=thirdparty%2Fdhcpcd.git Linux: Only set positive reachable timers --- diff --git a/src/if-linux.c b/src/if-linux.c index c2e7b9a7..cc59e572 100644 --- a/src/if-linux.c +++ b/src/if-linux.c @@ -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; }