blob: 0579d83b858edc84d4d394857d229e060cf99e7b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
$NetBSD: patch-af,v 1.5 2002/04/09 09:53:55 itojun Exp $
--- agent/mibgroup/mibII/interfaces.c.orig Fri Mar 29 16:44:18 2002
+++ agent/mibgroup/mibII/interfaces.c Tue Apr 9 18:26:59 2002
@@ -167,7 +167,7 @@
#if defined(freebsd3) || defined(freebsd4) || defined(freebsd5)
# define USE_SYSCTL_IFLIST
#else
-# if defined(CTL_NET) && !defined(freebsd2)
+# if defined(CTL_NET) && !defined(freebsd2) && !defined(netbsd1)
# ifdef PF_ROUTE
# ifdef NET_RT_IFLIST
# ifndef netbsd1
@@ -1776,19 +1776,34 @@
cp = strchr(saveName, '\0');
string_append_int (cp, ifnet.if_unit);
#endif
- if (1 || strcmp(saveName,"lo0") != 0) { /* XXX */
+ if (1 ) { /* XXX */
/*
* Try to find an address for this interface
*/
auto_nlist(IFADDR_SYMBOL, (char *)&ia, sizeof(ia));
+#ifdef netbsd1
+ ia=(struct in_ifaddr *)ifnet.if_addrlist.tqh_first;
+#endif
while (ia) {
klookup((unsigned long)ia , (char *)&in_ifaddr, sizeof(in_ifaddr));
+#ifdef netbsd1
+#define CP(x) ((char *)(x))
+{ char *cp; struct sockaddr * sa;
+ cp = (CP(in_ifaddr.ia_ifa.ifa_addr) - CP(ia)) +
+ CP(&in_ifaddr); sa = (struct sockaddr *)cp;
+if (sa->sa_family==AF_INET)
+#endif
if (in_ifaddr.ia_ifp == ifnetaddr) {
has_ipaddr = 1; /* this IF has IP-address */
break;
}
+}
+#ifdef netbsd1
+ ia=(struct in_ifaddr *)in_ifaddr.ia_ifa.ifa_list.tqe_next;
+#else
ia = in_ifaddr.ia_next;
+#endif
}
#if !defined(netbsd1) && !defined(freebsd2) && !defined(openbsd2) && !defined(STRUCT_IFNET_HAS_IF_ADDRLIST)
|