printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_talk, "          EtherTalk Phase 2 addr:%s\n"), ddptype->sprint(&ptr->ddpaddr,1));
printf(_("          EtherTalk Phase 2 addr:%s\n"), ddptype->sprint(&ptr->ddpaddr,1));
ife_print(struct interface *ptr){  struct aftype *ap;  struct hwtype *hw;  int hf;  int can_compress = 0;#if HAVE_AFIPX  static struct aftype *ipxtype=NULL;#endif#if HAVE_AFECONET  static struct aftype *ectype = NULL;#endif#if HAVE_AFATALK   static struct aftype *ddptype = NULL;#endif#if HAVE_AFINET6  FILE *f;  char addr6[40], devname[20];  struct sockaddr_in6 sap;  int plen, scope, dad_status, if_idx;  extern struct aftype inet6_aftype;  char addr6p[8][5];    if (!strncmp(ptr->name, "sit", 3))     ptr->addr.sa_family = AF_INET6;      /* fix this up properly one day */#endif  ap = get_afntype(ptr->addr.sa_family);  if (ap == NULL) ap = get_afntype(0);  hf=ptr->type;  if (strncmp(ptr->name, "lo", 2) == 0)  	hf=255;  	  if (hf==ARPHRD_CSLIP || hf==ARPHRD_CSLIP6)    can_compress = 1;    hw = get_hwntype(hf);  if (hw == NULL) hw = get_hwntype(-1);  printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_link, 		     "%-8.8s  Link encap:%s  "), ptr->name, hw->title);  /* Don't print the hardware address for ATM or Ash if it's null. */  if (hw->sprint != NULL && ((strncmp(ptr->name, "atm", 3) &&			      strncmp(ptr->name, "ash", 3)) ||    (ptr->hwaddr[0] || ptr->hwaddr[1] || ptr->hwaddr[2] || ptr->hwaddr[3] ||    ptr->hwaddr[4] || ptr->hwaddr[5])))     printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_hw, "HWaddr %s  ")	   , hw->print(ptr->hwaddr));#ifdef IFF_PORTSEL  if (ptr->flags & IFF_PORTSEL)     printf("Media:%s%s", if_port_text[ptr->map.port][0], 	   (ptr->flags & IFF_AUTOMEDIA)?"(auto)":"");#endif  printf("\n");#if HAVE_AFINET6    if (ap->af != AF_INET6) {#endif    printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_adr,		       "          %s addr:%s "), ap->name,	   ap->sprint(&ptr->addr, 1));    if (ptr->flags & IFF_POINTOPOINT) {      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_pap, " P-t-P:%s "),	     ap->sprint(&ptr->dstaddr, 1));    }     if (ptr->flags & IFF_BROADCAST) {      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_bcast, " Bcast:%s "),	     ap->sprint(&ptr->broadaddr, 1));    }    printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_mask, " Mask:%s\n"),	   ap->sprint(&ptr->netmask, 1));#if HAVE_AFINET6  }  if ((f = fopen(_PATH_PROCNET_IFINET6, "r")) != NULL) {    while(fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n",		 addr6p[0], addr6p[1], addr6p[2], addr6p[3],		 addr6p[4], addr6p[5], addr6p[6], addr6p[7],		 &if_idx, &plen, &scope, &dad_status, devname) != EOF) {      if (!strcmp(devname, ptr->name)) {	sprintf(addr6, "%s:%s:%s:%s:%s:%s:%s:%s",		addr6p[0], addr6p[1], addr6p[2], addr6p[3],		addr6p[4], addr6p[5], addr6p[6], addr6p[7]);	inet6_aftype.input(1, addr6, (struct sockaddr *)&sap);	printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_adr6,			   "          inet6 addr: %s/%d"),	       inet6_aftype.sprint((struct sockaddr *)&sap, 1), plen);	printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_scope,				   " Scope:"));	switch (scope) {	case 0: printf("Global"); break;	case IPV6_ADDR_LINKLOCAL: printf("Link"); break;	case IPV6_ADDR_SITELOCAL: printf("Site"); break;	case IPV6_ADDR_COMPATv4: printf("Compat"); break;	case IPV6_ADDR_LOOPBACK: printf("Host"); break;	default: printf("Unknown");	}	printf("\n");      }    }    fclose(f);  }#endif  #if HAVE_AFIPX  if (ipxtype==NULL)    ipxtype=get_afntype(AF_IPX);  if (ipxtype!=NULL) {    if(ptr->has_ipx_bb)      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_etherII,			 "          IPX/Ethernet II addr:%s\n"),	     ipxtype->sprint(&ptr->ipxaddr_bb,1));    if(ptr->has_ipx_sn)      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_SNAP,			 "          IPX/Ethernet SNAP addr:%s\n"),	     ipxtype->sprint(&ptr->ipxaddr_sn,1));    if(ptr->has_ipx_e2)      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_8022,			 "          IPX/Ethernet 802.2 addr:%s\n"),	     ipxtype->sprint(&ptr->ipxaddr_e2,1));    if(ptr->has_ipx_e3)      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_8023,			 "          IPX/Ethernet 802.3 addr:%s\n"),	     ipxtype->sprint(&ptr->ipxaddr_e3,1));  }#endif#if HAVE_AFATALK  if (ddptype==NULL)    ddptype=get_afntype(AF_APPLETALK);  if (ddptype!=NULL) {    if (ptr->has_ddp)      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_talk,			 "          EtherTalk Phase 2 addr:%s\n"),	     ddptype->sprint(&ptr->ddpaddr,1));  }#endif#if HAVE_AFECONET  if (ectype == NULL)    ectype = get_afntype(AF_ECONET);  if (ectype != NULL) {    if (ptr->has_econet)      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_ec,			 "          econet addr:%s\n"),	     ectype->sprint(&ptr->ecaddr,1));  }#endif  printf("          ");  if (ptr->flags == 0) printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_noflags,					  "[NO FLAGS] "));  if (ptr->flags & IFF_UP) printf("UP ");  if (ptr->flags & IFF_BROADCAST) printf("BROADCAST ");  if (ptr->flags & IFF_DEBUG) printf("DEBUG ");  if (ptr->flags & IFF_LOOPBACK) printf("LOOPBACK ");  if (ptr->flags & IFF_POINTOPOINT) printf("POINTOPOINT ");  if (ptr->flags & IFF_NOTRAILERS) printf("NOTRAILERS ");  if (ptr->flags & IFF_RUNNING) printf("RUNNING ");  if (ptr->flags & IFF_NOARP) printf("NOARP ");  if (ptr->flags & IFF_PROMISC) printf("PROMISC ");  if (ptr->flags & IFF_ALLMULTI) printf("ALLMULTI ");  if (ptr->flags & IFF_SLAVE) printf("SLAVE ");  if (ptr->flags & IFF_MASTER) printf("MASTER ");  if (ptr->flags & IFF_MULTICAST) printf("MULTICAST ");  printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_mtu, " MTU:%d  Metric:%d\n"),	 ptr->mtu, ptr->metric?ptr->metric:1);  if (ptr->tx_queue_len != -1)    printf("          txqueuelen:%d\n", ptr->tx_queue_len);#if 0  else    printf("          txqueuelen not available\n");#endif  /* If needed, display the interface statistics. */  printf("          ");  printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_rx,	"RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"),	ptr->stats.rx_packets, ptr->stats.rx_errors,	ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors,        ptr->stats.rx_frame_errors);  if (can_compress)    printf("             compressed:%lu\n", ptr->stats.rx_compressed);	   printf("          ");  printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_tx,	"TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"),	ptr->stats.tx_packets, ptr->stats.tx_errors,	ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors,	ptr->stats.tx_carrier_errors);  printf("          Collisions:%lu ", ptr->stats.collisions);  if (can_compress)    printf("compressed:%lu ", ptr->stats.tx_compressed);  printf("\n");  if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma || 		ptr->map.base_addr)) {    printf("          ");    if (ptr->map.irq)      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_interrupt,			 "Interrupt:%d "), ptr->map.irq);    if (ptr->map.base_addr>=0x100)      /* Only print devices using it for 					  I/O maps */      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_base,			 "Base address:0x%x "), ptr->map.base_addr);    if (ptr->map.mem_start) {      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_mem, "Memory:%lx-%lx "),	     ptr->map.mem_start,ptr->map.mem_end);    }    if (ptr->map.dma)      printf(NLS_CATGETS(catfd, ifconfigSet, ifconfig_dma, "DMA chan:%x "),	     ptr->map.dma);    printf("\n");  }    printf("\n");}