From 6e159bbc62dee08f81871bba7e002ff8aa7b7d1a Mon Sep 17 00:00:00 2001 From: Paul Traina Date: Tue, 23 Jan 1996 02:22:16 +0000 Subject: [PATCH] Merge back in 4.4bsd ARP changes by hand --- libexec/bootpd/Makefile.inc | 3 +++ libexec/bootpd/hwaddr.c | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 libexec/bootpd/Makefile.inc diff --git a/libexec/bootpd/Makefile.inc b/libexec/bootpd/Makefile.inc new file mode 100644 index 00000000000..d055f527cde --- /dev/null +++ b/libexec/bootpd/Makefile.inc @@ -0,0 +1,3 @@ +# $Id$ + +BINDIR?= /usr/libexec diff --git a/libexec/bootpd/hwaddr.c b/libexec/bootpd/hwaddr.c index 191fadced5d..81c1c98aed7 100644 --- a/libexec/bootpd/hwaddr.c +++ b/libexec/bootpd/hwaddr.c @@ -48,6 +48,13 @@ #define ATF_INUSE 0 #endif +/* For BSD 4.4, set arp entry by writing to routing socket */ +#if defined(BSD) +#if BSD >= 199306 +extern int bsd_arp_set __P((struct in_addr *, char *, int)); +#endif +#endif + #include "bptypes.h" #include "hwaddr.h" #include "report.h" @@ -175,6 +182,9 @@ setarp(s, ia, hafamily, haddr, halen) } #endif /* SVR4 */ #else /* SIOCSARP */ +#if defined(BSD) && (BSD >= 199306) + bsd_arp_set(ia, haddr, halen); +#else /* * Oh well, SIOCSARP is not defined. Just run arp(8). * Need to delete partial entry first on some systems. @@ -194,6 +204,7 @@ setarp(s, ia, hafamily, haddr, halen) if (status) report(LOG_ERR, "arp failed, exit code=0x%x", status); return; +#endif /* ! 4.4 BSD */ #endif /* SIOCSARP */ }