summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmatthew <jmatthew@openbsd.org>2020-08-20 03:09:28 +0000
committerjmatthew <jmatthew@openbsd.org>2020-08-20 03:09:28 +0000
commit5e36d4562cd51a46e6d9a1e2ff940b7c8874a5a2 (patch)
treef8effb5aa585323f173df628cf3041b38a44a646
parentRevert DYING. At least some USB memory sticks get very upset. (diff)
downloadwireguard-openbsd-5e36d4562cd51a46e6d9a1e2ff940b7c8874a5a2.tar.xz
wireguard-openbsd-5e36d4562cd51a46e6d9a1e2ff940b7c8874a5a2.zip
Use the ROUTE_FLAGFILTER setsockopt to filter out routing socket messages
for L2 and broadcast routes, since we don't need them at all. ok kn@ remi@ dlg@
-rw-r--r--usr.sbin/ospfd/kroute.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/usr.sbin/ospfd/kroute.c b/usr.sbin/ospfd/kroute.c
index f55002d6a6e..9da45fa9399 100644
--- a/usr.sbin/ospfd/kroute.c
+++ b/usr.sbin/ospfd/kroute.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kroute.c,v 1.113 2019/11/09 15:54:19 denis Exp $ */
+/* $OpenBSD: kroute.c,v 1.114 2020/08/20 03:09:28 jmatthew Exp $ */
/*
* Copyright (c) 2004 Esben Norby <norby@openbsd.org>
@@ -133,6 +133,7 @@ kr_init(int fs, u_int rdomain, int redis_label_or_prefix, u_int8_t fib_prio)
int opt = 0, rcvbuf, default_rcvbuf;
socklen_t optlen;
int filter_prio = fib_prio;
+ int filter_flags = RTF_LLINFO | RTF_BROADCAST;
kr_state.fib_sync = fs;
kr_state.rdomain = rdomain;
@@ -160,6 +161,11 @@ kr_init(int fs, u_int rdomain, int redis_label_or_prefix, u_int8_t fib_prio)
log_warn("%s: setsockopt AF_ROUTE ROUTE_PRIOFILTER", __func__);
/* not fatal */
}
+ if (setsockopt(kr_state.fd, AF_ROUTE, ROUTE_FLAGFILTER, &filter_flags,
+ sizeof(filter_flags)) == -1) {
+ log_warn("%s: setsockopt AF_ROUTE ROUTE_FLAGFILTER", __func__);
+ /* not fatal */
+ }
/* grow receive buffer, don't wanna miss messages */
optlen = sizeof(default_rcvbuf);