summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/ipsend/44arp.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ipfilter/ipsend/44arp.c')
-rw-r--r--contrib/ipfilter/ipsend/44arp.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/contrib/ipfilter/ipsend/44arp.c b/contrib/ipfilter/ipsend/44arp.c
index de9f4d9..4206355 100644
--- a/contrib/ipfilter/ipsend/44arp.c
+++ b/contrib/ipfilter/ipsend/44arp.c
@@ -1,33 +1,37 @@
+/* $NetBSD$ */
+
/*
* Based upon 4.4BSD's /usr/sbin/arp
*/
-#if defined(__sgi) && (IRIX > 602)
-# include <sys/ptimers.h>
-#endif
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
#include <sys/param.h>
#include <sys/file.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
#include <net/if.h>
+#if __FreeBSD_version >= 300000
+# include <net/if_var.h>
+#endif
#include <net/if_dl.h>
#include <net/if_types.h>
+#if defined(__FreeBSD__)
+# include "radix_ipf.h"
+#endif
#include <net/route.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
#include <netdb.h>
#include <errno.h>
#include <nlist.h>
#include <stdio.h>
-#include <netinet/in.h>
-#include <netinet/ip_var.h>
-#include <netinet/tcp.h>
-#if __FreeBSD_version >= 300000
-# include <net/if_var.h>
-#endif
#include "ipsend.h"
#include "iplang/iplang.h"
@@ -37,7 +41,7 @@
* its IP address in address
* (4 bytes)
*/
-int resolve(host, address)
+int resolve(host, address)
char *host, *address;
{
struct hostent *hp;
@@ -74,6 +78,9 @@ char *addr, *eaddr;
return 0;
#endif
+ if (!addr)
+ return -1;
+
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
mib[2] = 0;
@@ -101,8 +108,8 @@ char *addr, *eaddr;
rtm = (struct rt_msghdr *)next;
sin = (struct sockaddr_inarp *)(rtm + 1);
sdl = (struct sockaddr_dl *)(sin + 1);
- if (addr && !bcmp(addr, (char *)&sin->sin_addr,
- sizeof(struct in_addr)))
+ if (!bcmp(addr, (char *)&sin->sin_addr,
+ sizeof(struct in_addr)))
{
bcopy(LLADDR(sdl), eaddr, sdl->sdl_alen);
return 0;
OpenPOWER on IntegriCloud