aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Tan <samueltan@google.com>2015-08-13 16:48:29 -0700
committerSamuel Tan <samueltan@google.com>2015-08-18 13:47:08 -0700
commit11464a5b08c94f30b5e7b59731e972b8c5bd4099 (patch)
tree5da7997a5f41dd4183437509242cd5fdf6d1191b
parent9177c6fae9fb7aecf0a0d378050788ba609a5a41 (diff)
downloaddhcpcd-6.8.2-11464a5b08c94f30b5e7b59731e972b8c5bd4099.tar.gz
[PATCH] Stop ARP probes when conflict is detected
Cherry-picked from https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/ master/net-misc/dhcpcd/files/patches/dhcpcd-6.8.2-Stop-ARP-probes-when- conflict-is-detected.patch. Currently, an ARP state is create for each IP when performing duplicate address detection. However, when duplicate address is detected, the ARP state for that IP doesn't get cleanup, causing the ARP request to be sent continuously with a random timeout. All ARP states would eventually get cleanup when a duplicate address detection succeed. So clean up the ARP state when duplicate address is detected to avoid generating unnecessary traffics and causing any problems with the dhcp state machine. BUG: 22956197 Change-Id: I0e6a2f14eb3871872dee409b6b0c87ec19c58bed Reviewed-on: https://chromium-review.googlesource.com/272614
-rw-r--r--dhcp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/dhcp.c b/dhcp.c
index c1da657..474e6c0 100644
--- a/dhcp.c
+++ b/dhcp.c
@@ -2774,6 +2774,7 @@ dhcp_arp_conflicted(struct arp_state *astate, const struct arp_msg *amsg)
if (ia)
ipv4_deladdr(astate->iface, &ia->addr, &ia->net);
#endif
+ arp_close(astate->iface);
eloop_timeout_delete(astate->iface->ctx->eloop, NULL,
astate->iface);
eloop_timeout_add_sec(astate->iface->ctx->eloop,