Module Name: src Committed By: roy Date: Tue Apr 11 14:29:23 UTC 2017
Modified Files: src/usr.sbin/rtadvd: rtadvd.c Log Message: Use RO_MSGFILTER. To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 src/usr.sbin/rtadvd/rtadvd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/rtadvd/rtadvd.c diff -u src/usr.sbin/rtadvd/rtadvd.c:1.52 src/usr.sbin/rtadvd/rtadvd.c:1.53 --- src/usr.sbin/rtadvd/rtadvd.c:1.52 Fri Dec 16 09:09:38 2016 +++ src/usr.sbin/rtadvd/rtadvd.c Tue Apr 11 14:29:23 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rtadvd.c,v 1.52 2016/12/16 09:09:38 ozaki-r Exp $ */ +/* $NetBSD: rtadvd.c,v 1.53 2017/04/11 14:29:23 roy Exp $ */ /* $KAME: rtadvd.c,v 1.92 2005/10/17 14:40:02 suz Exp $ */ /* @@ -1652,10 +1652,26 @@ sock_open(void) static void rtsock_open(void) { +#ifdef RO_MSGFILTER + unsigned char msgfilter[] = { + RTM_ADD, RTM_DELETE, + RTM_NEWADDR, RTM_DELADDR, +#ifdef RTM_IFANNOUNCE + RTM_IFANNOUNCE, +#endif + RTM_IFINFO, + }; +#endif + if ((rtsock = prog_socket(PF_ROUTE, SOCK_RAW, 0)) < 0) { syslog(LOG_ERR, "<%s> socket: %m", __func__); exit(1); } +#ifdef RO_MSGFILTER + if (setsockopt(rtsock, PF_ROUTE, RO_MSGFILTER, + &msgfilter, sizeof(msgfilter) == -1)) + syslog(LOG_ERR, "<%s> RO_MSGFILTER: %m", __func__); +#endif } struct rainfo *