From e850eb882e658a67b4033dbe412ee57b4a559d42 Mon Sep 17 00:00:00 2001 From: pst Date: Tue, 23 Jan 1996 02:22:16 +0000 Subject: 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 (limited to 'libexec/bootpd') diff --git a/libexec/bootpd/Makefile.inc b/libexec/bootpd/Makefile.inc new file mode 100644 index 0000000..d055f52 --- /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 191fadc..81c1c98 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 */ } -- cgit v1.1