pkgsrc-wip/olsrd/patches/patch-aa
Pierre Pronchery bb86fa6895 Adding olsrd
2009-06-29 15:41:01 +00:00

68 lines
2 KiB
Text

$NetBSD: patch-aa,v 1.1 2009/06/29 15:41:01 khorben Exp $
--- src/bsd/net.c.orig 2009-06-24 19:00:51.000000000 +0200
+++ src/bsd/net.c
@@ -1,4 +1,3 @@
-
/*
* The olsr.org Optimized Link-State Routing daemon(olsrd)
* Copyright (c) 2004, Andreas Tonnesen(andreto@olsr.org)
@@ -73,6 +72,9 @@
#ifdef __NetBSD__
#include <net/if_ether.h>
+#include <netinet6/in6_var.h> /* For struct in6_ifreq */
+#include <net80211/ieee80211_ioctl.h>
+#include <ifaddrs.h>
#endif
#ifdef __OpenBSD__
@@ -127,7 +129,7 @@ static int
set_sysctl_int(const char *name, int new)
{
int old;
-#if __MacOSX__ || __OpenBSD__
+#if defined(__MacOSX__) || defined(__OpenBSD__) || defined(__NetBSD__)
size_t len = sizeof(old);
#else
unsigned int len = sizeof(old);
@@ -191,7 +193,7 @@ disable_redirects_global(int version)
/* do not accept ICMP redirects */
-#ifdef __OpenBSD__
+#if defined(__OpenBSD__) || defined(__NetBSD__)
if (version == AF_INET)
name = "net.inet.icmp.rediraccept";
else
@@ -731,9 +733,11 @@ olsr_recvfrom(int s, void *buf, size_t l
inet_ntop(olsr_cnf->ip_version, olsr_cnf->ip_version == AF_INET6 ? (char *)&sin6->sin6_addr : (char *)&sin->sin_addr,
addrstr, sizeof(addrstr)), ifc->int_name, iname);
+#ifndef __NetBSD__
if (strcmp(ifc->int_name, iname) != 0) {
return (0);
}
+#endif
return (count);
}
@@ -768,6 +772,18 @@ check_wireless_interface(char *ifname)
bzero(&nr, sizeof(nr));
strlcpy(nr.nr_ifname, ifname, sizeof(nr.nr_ifname));
return (ioctl(olsr_cnf->ioctl_s, SIOCG80211FLAGS, &nr) >= 0) ? 1 : 0;
+#elif defined __NetBSD__
+ struct ifreq ireq;
+ struct ieee80211_nwid data;
+ int ret;
+
+ memset(&ireq, 0, sizeof(ireq));
+ strlcpy(ireq.ifr_name, ifname, sizeof(ireq.ifr_name));
+ ireq.ifr_data = &data;
+ ret = ioctl(olsr_cnf->ioctl_s, SIOCG80211NWID, &ireq);
+ if(ret == 0)
+ return 1;
+ return 0;
#else
ifname = NULL; /* squelsh compiler warning */
return 0;