+ if (sin->sin_addr.s_addr != 0)
+ printf("broadcast %s", inet_ntoa(sin->sin_addr));
+ }
+ putchar('\n');
+}
+
+
+xns_status(force)
+ int force;
+{
+ struct sockaddr_ns *sns;
+
+ close(s);
+ s = socket(AF_NS, SOCK_DGRAM, 0);
+ if (s < 0) {
+ if (errno == EPROTONOSUPPORT)
+ return;
+ perror("ifconfig: socket");
+ exit(1);
+ }
+ if (ioctl(s, SIOCGIFADDR, (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)");
+ }
+ strncpy(ifr.ifr_name, name, sizeof ifr.ifr_name);
+ sns = (struct sockaddr_ns *)&ifr.ifr_addr;
+ printf("\tns %s ", ns_ntoa(sns->sns_addr));
+ if (flags & IFF_POINTOPOINT) { /* by W. Nesheim@Cornell */
+ if (ioctl(s, SIOCGIFDSTADDR, (caddr_t)&ifr) < 0) {
+ if (errno == EADDRNOTAVAIL)
+ bzero((char *)&ifr.ifr_addr, sizeof(ifr.ifr_addr));
+ else
+ Perror("ioctl (SIOCGIFDSTADDR)");
+ }
+ strncpy(ifr.ifr_name, name, sizeof (ifr.ifr_name));
+ sns = (struct sockaddr_ns *)&ifr.ifr_dstaddr;
+ printf("--> %s ", ns_ntoa(sns->sns_addr));
+ }
+ 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);
+ }