summaryrefslogtreecommitdiffstats
path: root/ipv4ll.c
diff options
context:
space:
mode:
Diffstat (limited to 'ipv4ll.c')
-rw-r--r--ipv4ll.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/ipv4ll.c b/ipv4ll.c
index 0a82f4a4..4e55bfe3 100644
--- a/ipv4ll.c
+++ b/ipv4ll.c
@@ -244,6 +244,12 @@ ipv4ll_conflicted(struct arp_state *astate, const struct arp_msg *amsg)
ifp = astate->iface;
state = IPV4LL_STATE(ifp);
assert(state != NULL);
+ if (state->addr == NULL) {
+ logger(ifp->ctx, LOG_WARNING,
+ "%s: IPv4LL %d No addr configured",
+ ifp->name, DEFEND_INTERVAL);
+ return;
+ }
assert(state->addr != NULL);
fail = 0;
@@ -283,7 +289,7 @@ ipv4ll_conflicted(struct arp_state *astate, const struct arp_msg *amsg)
"%s: IPv4LL %d second defence failed for %s",
ifp->name, DEFEND_INTERVAL, state->addr->saddr);
else if (arp_request(ifp,
- state->addr->addr.s_addr, state->addr->addr.s_addr) == -1)
+ state->addr->addr.s_addr, state->addr->addr.s_addr, NULL) == -1)
logger(ifp->ctx, LOG_ERR,
"%s: arp_request: %m", __func__);
else {
@@ -369,7 +375,7 @@ ipv4ll_start(void *arg)
setstate(ifp->ctx->randomstate);
}
- if ((astate = arp_new(ifp, NULL)) == NULL)
+ if ((astate = arp_new(ifp, NULL, NULL, NULL)) == NULL)
return;
state->arp = astate;