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;
 

Reply via email to