+ putchar('\n');
+}
+
+iso_status(force)
+ int force;
+{
+ struct sockaddr_iso *siso;
+ struct iso_ifreq ifr;
+
+ close(s);
+ s = socket(AF_ISO, SOCK_DGRAM, 0);
+ if (s < 0) {
+ if (errno == EPROTONOSUPPORT)
+ return;
+ perror("ifconfig: socket");
+ exit(1);
+ }
+ bzero((caddr_t)&ifr, sizeof(ifr));
+ strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
+ if (ioctl(s, SIOCGIFADDR_ISO, (caddr_t)&ifr) < 0) {
+ if (errno == EADDRNOTAVAIL || errno == EAFNOSUPPORT) {
+ if (!force)
+ return;
+ bzero((char *)&ifr.ifr_Addr, sizeof(ifr.ifr_Addr));
+ } else {
+ perror("ioctl (SIOCGIFADDR_ISO)");
+ exit(1);
+ }
+ }
+ strncpy(ifr.ifr_name, name, sizeof ifr.ifr_name);
+ siso = &ifr.ifr_Addr;
+ printf("\tiso %s ", iso_ntoa(&siso->siso_addr));
+ if (ioctl(s, SIOCGIFNETMASK_ISO, (caddr_t)&ifr) < 0) {
+ if (errno != EADDRNOTAVAIL)
+ perror("ioctl (SIOCGIFNETMASK_ISO)");
+ } else {
+ printf(" netmask %s ", iso_ntoa(&siso->siso_addr));
+ }
+ if (flags & IFF_POINTOPOINT) {
+ if (ioctl(s, SIOCGIFDSTADDR_ISO, (caddr_t)&ifr) < 0) {
+ if (errno == EADDRNOTAVAIL)
+ bzero((char *)&ifr.ifr_Addr, sizeof(ifr.ifr_Addr));
+ else
+ Perror("ioctl (SIOCGIFDSTADDR_ISO)");
+ }
+ strncpy(ifr.ifr_name, name, sizeof (ifr.ifr_name));
+ siso = &ifr.ifr_Addr;
+ printf("--> %s ", iso_ntoa(&siso->siso_addr));
+ }