Don't barf when asked to report status.
SCCS-vsn: sbin/ifconfig/ifconfig.c 4.13
static char sccsid[] = "@(#)ifconfig.c 4.13 (Berkeley) %G%";
#endif not lint
static char sccsid[] = "@(#)ifconfig.c 4.13 (Berkeley) %G%";
#endif not lint
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
exit(1);
}
argc--, argv++;
exit(1);
}
argc--, argv++;
- strncpy(name, *argv, sizeof(name - 1));
- name[sizeof name - 1] = 0;
+ strncpy(name, *argv, sizeof(name));
strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
argc--, argv++;
if (argc > 0) {
strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
argc--, argv++;
if (argc > 0) {
close(s);
s = socket(AF_NS, SOCK_DGRAM, 0);
if (s < 0) {
close(s);
s = socket(AF_NS, SOCK_DGRAM, 0);
if (s < 0) {
+ if (errno == EAFNOSUPPORT)
+ return;
perror("ifconfig: socket");
exit(1);
}
if (ioctl(s, SIOCGIFADDR, (caddr_t)&ifr) < 0) {
perror("ifconfig: socket");
exit(1);
}
if (ioctl(s, SIOCGIFADDR, (caddr_t)&ifr) < 0) {
- if (errno == EAFNOSUPPORT)
+ if (errno == EADDRNOTAVAIL || errno==EAFNOSUPPORT)
return;
Perror("ioctl (SIOCGIFADDR)");
}
return;
Perror("ioctl (SIOCGIFADDR)");
}