diff options
author | Florian Obser <florian@cvs.openbsd.org> | 2018-07-18 14:43:35 +0000 |
---|---|---|
committer | Florian Obser <florian@cvs.openbsd.org> | 2018-07-18 14:43:35 +0000 |
commit | 25cf94e233da2724636c5d85caadc707e2d3dfd4 (patch) | |
tree | 1e0fa94637119096ae914b4d40568700b04da204 | |
parent | 02a874d492963e77b96a212de341b4b30fd62a52 (diff) |
Stop our own router advertisements from looping back to us.
Pointed out by semarie@
-rw-r--r-- | usr.sbin/rad/rad.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.sbin/rad/rad.c b/usr.sbin/rad/rad.c index 36b68f2e318..4652e1e0fb7 100644 --- a/usr.sbin/rad/rad.c +++ b/usr.sbin/rad/rad.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rad.c,v 1.8 2018/07/15 09:28:21 florian Exp $ */ +/* $OpenBSD: rad.c,v 1.9 2018/07/18 14:43:34 florian Exp $ */ /* * Copyright (c) 2018 Florian Obser <florian@openbsd.org> @@ -129,7 +129,7 @@ main(int argc, char *argv[]) char *saved_argv0; int pipe_main2frontend[2]; int pipe_main2engine[2]; - int icmp6sock, on = 1; + int icmp6sock, on = 1, off = 0; int frontend_routesock, rtfilter; int control_fd; @@ -275,6 +275,10 @@ main(int argc, char *argv[]) sizeof(on)) < 0) fatal("IPV6_RECVHOPLIMIT"); + if (setsockopt(icmp6sock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &off, + sizeof(off)) < 0) + fatal("IPV6_RECVHOPLIMIT"); + /* only router advertisements and solicitations */ ICMP6_FILTER_SETBLOCKALL(&filt); ICMP6_FILTER_SETPASS(ND_ROUTER_ADVERT, &filt); |