]>
Commit | Line | Data |
---|---|---|
d1ed7138 | 1 | --- tcpdump-3.4/print-ether.c.jbj Tue Aug 3 19:45:06 1999 |
2 | +++ tcpdump-3.4/print-ether.c Wed Aug 4 09:08:36 1999 | |
3 | @@ -54,6 +54,7 @@ | |
4 | #include <linux/if_packet.h> | |
5 | ||
6 | #include <stdio.h> | |
7 | +#include <ctype.h> | |
8 | #include <pcap.h> | |
9 | ||
10 | #include "interface.h" | |
11 | @@ -103,20 +104,23 @@ | |
12 | static char ifnames[16][16]; | |
13 | if (h->ifindex>0 && h->ifindex <= 16) { | |
14 | if (ifnames[h->ifindex-1][0] == 0) { | |
15 | - int tmp_fd; | |
16 | + int tmp_fd, err; | |
17 | struct ifreq ifr; | |
18 | ifr.ifr_ifindex = h->ifindex; | |
19 | tmp_fd = socket(AF_INET, SOCK_DGRAM, 0); | |
20 | - if (ioctl(tmp_fd, SIOCGIFNAME, (char*)&ifr) == 0) { | |
21 | + err = ioctl(tmp_fd, SIOCGIFNAME, (char*)&ifr); | |
22 | + /* XXX SIOCGIFNAME fubar on sparc64 2.2.10-3 */ | |
23 | + if (err == 0 && | |
24 | + (isprint(ifr.ifr_name[0]) && isprint(ifr.ifr_name[1]))) { | |
25 | memcpy(ifnames[h->ifindex-1], ifr.ifr_name, 16); | |
26 | } else { | |
27 | - sprintf(ifnames[h->ifindex-1], "if%2d ", h->ifindex); | |
28 | + sprintf(ifnames[h->ifindex-1], "if%02d ", h->ifindex); | |
29 | } | |
30 | close(tmp_fd); | |
31 | } | |
32 | printf("%4s ", ifnames[h->ifindex-1]); | |
33 | } else | |
34 | - printf("if%2d ", h->ifindex); | |
35 | + printf("if%02d ", h->ifindex); | |
36 | } | |
37 | ||
38 | switch (h->pkt_type) { |