Module Name: src
Committed By: roy
Date: Wed Apr 12 16:57:14 UTC 2017
Modified Files:
src/usr.sbin/rarpd: mkarp.c
Log Message:
Use RO_MSGFILTER.
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/usr.sbin/rarpd/mkarp.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/rarpd/mkarp.c
diff -u src/usr.sbin/rarpd/mkarp.c:1.11 src/usr.sbin/rarpd/mkarp.c:1.12
--- src/usr.sbin/rarpd/mkarp.c:1.11 Mon Apr 4 07:37:08 2016
+++ src/usr.sbin/rarpd/mkarp.c Wed Apr 12 16:57:14 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: mkarp.c,v 1.11 2016/04/04 07:37:08 ozaki-r Exp $ */
+/* $NetBSD: mkarp.c,v 1.12 2017/04/12 16:57:14 roy Exp $ */
/*
* Copyright (c) 1984, 1993
@@ -42,7 +42,7 @@ __COPYRIGHT("@(#) Copyright (c) 1984, 19
#if 0
static char sccsid[] = "@(#)arp.c 8.3 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: mkarp.c,v 1.11 2016/04/04 07:37:08 ozaki-r Exp $");
+__RCSID("$NetBSD: mkarp.c,v 1.12 2017/04/12 16:57:14 roy Exp $");
#endif
#endif /* not lint */
@@ -132,6 +132,10 @@ mkarp(u_char *haddr, u_int32_t ipaddr)
struct sockaddr_inarp sin_m;
struct sockaddr_dl sdl_m;
+#ifdef RO_MSGFILTER
+ unsigned char msgfilter[] = { RTM_GET, RTM_ADD };
+#endif
+
sin = &sin_m;
rtm = &(m_rtmsg.m_rtm);
@@ -158,6 +162,11 @@ mkarp(u_char *haddr, u_int32_t ipaddr)
s = socket(PF_ROUTE, SOCK_RAW, 0);
if (s < 0)
err(1, "socket");
+#ifdef RO_MSGFILTER
+ if (setsockopt(s, PF_ROUTE, RO_MSGFILTER,
+ &msgfilter, sizeof(msgfilter)) < 0)
+ warn("RO_MSGFILTER");
+#endif
rtm->rtm_flags = 0;