summaryrefslogtreecommitdiff
path: root/src/libsystemd-network/sd-ndisc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsystemd-network/sd-ndisc.c')
-rw-r--r--src/libsystemd-network/sd-ndisc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libsystemd-network/sd-ndisc.c b/src/libsystemd-network/sd-ndisc.c
index 0881973e7f..3bb06f6892 100644
--- a/src/libsystemd-network/sd-ndisc.c
+++ b/src/libsystemd-network/sd-ndisc.c
@@ -508,6 +508,9 @@ static int ndisc_router_advertisment_recv(sd_event_source *s, int fd, uint32_t r
return 0;
}
+ if (!in_addr_is_link_local(AF_INET6, (const union in_addr_union*) &router.in6.sin6_addr))
+ return 0;
+
if (ra->nd_ra_type != ND_ROUTER_ADVERT)
return 0;
@@ -628,7 +631,7 @@ int sd_ndisc_router_discovery_start(sd_ndisc *nd) {
assert(nd->event);
if (nd->state != NDISC_STATE_IDLE)
- return -EINVAL;
+ return -EBUSY;
if (nd->index < 1)
return -EINVAL;