author | Mike Sullivan <Mike.Sullivan@Oracle.COM> |
Mon, 11 Mar 2013 10:38:09 -0700 | |
branch | s11-update |
changeset 2520 | ceec631e74d1 |
parent 306 | 9da68c8821e3 |
permissions | -rw-r--r-- |
306
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
1 |
--- addrs_dlpi.c.orig Tue Feb 10 13:55:04 2009 |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
2 |
+++ addrs_dlpi.c Fri Jan 16 12:42:53 2009 |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
3 |
@@ -24,11 +24,8 @@ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
4 |
#include <sys/sockio.h> |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
5 |
#include <sys/ioctl.h> |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
6 |
#include <sys/socket.h> |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
7 |
-#include <sys/dlpi.h> |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
8 |
#include <net/if.h> |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
9 |
|
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
10 |
-#include "dlcommon.h" |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
11 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
12 |
extern char *split_dname(char *device, int *unitp); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
13 |
extern char *strncpy2(char *dest, char *src, int n); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
14 |
extern char *strncat2(char *dest, char *src, int n); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
15 |
@@ -56,123 +53,8 @@ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
16 |
int got_ip_addr = 0; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
17 |
|
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
18 |
int fd; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
19 |
- long buf[MAXDLBUF]; /* long aligned */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
20 |
- union DL_primitives *dlp; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
21 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
22 |
- char *cp; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
23 |
- int unit_num = 0; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
24 |
- int sap = 0; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
25 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
26 |
- char *devname = NULL; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
27 |
- char *devname2 = NULL; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
28 |
- char fulldevpath[256]; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
29 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
30 |
struct ifreq ifr = {}; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
31 |
|
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
32 |
- /* -- */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
33 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
34 |
- memset(if_hw_addr, 0, 6); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
35 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
36 |
- // we want to be able to process either a fully qualified /dev/ge0 |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
37 |
- // type interface definition, or just ge0. |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
38 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
39 |
- if (strncmp(interface, "/dev/", strlen("/dev/")) == 0) { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
40 |
- devname = interface + strlen("/dev/"); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
41 |
- } else { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
42 |
- devname = interface; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
43 |
- } |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
44 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
45 |
- strncpy2(fulldevpath, "/dev/", sizeof(fulldevpath)-1); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
46 |
- cp = strncat2(fulldevpath, interface, sizeof(fulldevpath)); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
47 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
48 |
- if (strlen(cp) != 0) { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
49 |
- fprintf(stderr, "device name buffer overflow %s\n", fulldevpath); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
50 |
- return -1; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
51 |
- } |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
52 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
53 |
- fprintf(stderr,"interface: %s\n", devname); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
54 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
55 |
- // on Solaris, even though we are wanting to talk to ethernet device |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
56 |
- // ge0, we have to open /dev/ge, then bind to unit 0. Dupe our |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
57 |
- // full path, then identify and cut off the unit number |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
58 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
59 |
- devname2 = strdup(fulldevpath); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
60 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
61 |
- cp = split_dname(devname2, &unit_num); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
62 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
63 |
- if (cp == NULL) { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
64 |
- free(devname2); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
65 |
- goto get_ip_address; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
66 |
- } else { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
67 |
- *cp = '\0'; /* null terminate devname2 right before numeric extension */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
68 |
- } |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
69 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
70 |
- // devname2 should now be something akin to /dev/ge. Try to open |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
71 |
- // it, and if it fails, fall back to the full /dev/ge0. |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
72 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
73 |
- if ((fd = open(devname2, O_RDWR)) < 0) { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
74 |
- if (errno != ENOENT) { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
75 |
- fprintf(stderr, "Couldn't open %s\n", devname2); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
76 |
- free(devname2); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
77 |
- goto get_ip_address; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
78 |
- } else { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
79 |
- if ((fd = open(fulldevpath, O_RDWR)) < 0) { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
80 |
- fprintf(stderr, "Couldn't open %s\n", fulldevpath); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
81 |
- free(devname2); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
82 |
- goto get_ip_address; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
83 |
- } |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
84 |
- } |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
85 |
- } |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
86 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
87 |
- free(devname2); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
88 |
- devname2 = NULL; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
89 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
90 |
- /* Use the dlcommon functions to get access to the DLPI information for this |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
91 |
- * interface. All of these functions exit() out on failure |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
92 |
- */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
93 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
94 |
- dlp = (union DL_primitives*) buf; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
95 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
96 |
- /* |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
97 |
- * DLPI attach to our low-level device |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
98 |
- */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
99 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
100 |
- dlattachreq(fd, unit_num); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
101 |
- dlokack(fd, buf); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
102 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
103 |
- /* |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
104 |
- * DLPI bind |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
105 |
- */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
106 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
107 |
- dlbindreq(fd, sap, 0, DL_CLDLS, 0, 0); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
108 |
- dlbindack(fd, buf); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
109 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
110 |
- /* |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
111 |
- * DLPI DL_INFO_REQ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
112 |
- */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
113 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
114 |
- dlinforeq(fd); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
115 |
- dlinfoack(fd, buf); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
116 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
117 |
- /* |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
118 |
- printdlprim(dlp); // uncomment this to dump out info from DLPI |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
119 |
- */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
120 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
121 |
- if (dlp->info_ack.dl_addr_length + dlp->info_ack.dl_sap_length == 6) { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
122 |
- memcpy(if_hw_addr, |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
123 |
- OFFADDR(dlp, dlp->info_ack.dl_addr_offset), |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
124 |
- dlp->info_ack.dl_addr_length); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
125 |
- got_hw_addr = 1; |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
126 |
- } else { |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
127 |
- fprintf(stderr, "Error, bad length for hardware interface %s -- %d\n", |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
128 |
- interface, |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
129 |
- dlp->info_ack.dl_addr_length); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
130 |
- } |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
131 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
132 |
- close(fd); |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
133 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
134 |
- get_ip_address: |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
135 |
- |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
136 |
/* Get the IP address of the interface */ |
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
137 |
|
9da68c8821e3
7055089 move iftop/pv to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
138 |
#ifdef SIOCGIFADDR |