fprintf(stderr, NLS_CATGETS(catfd, arpSet, arp_unkn_addr, "arp: %s: unknown address family.\n"),
fprintf(stderr, _("arp: %s: unknown address family.\n"),
main(int argc, char **argv){  int i, lop, what;  struct option longopts[]=  {	{"verbose",	0,	0,	'v'},	{"version",	0,	0,	'V'},	{"all",		0,	0,	'a'},	{"delete",	0,	0,	'd'},	{"file",	0,	0,	'f'},	{"numeric",	0,	0,	'n'},	{"set",		0,	0,	's'},	{"protocol",	1,	0,	'A'},	{"hw-type",	1,	0,	'H'},	{"device",	0,	0,	'i'},	{"help",	0,	0,	'h'},	{"use-device",	0,	0,	'D'},	{"symbolic",	0,	0,	'N'},	{NULL,		0,	0,	0}  };	             #if NLS  setlocale (LC_MESSAGES, "");  catfd = catopen ("nettools", MCLoadBySet);#endif  /* Initialize variables... */  if ((hw = get_hwtype(DFLT_HW)) == NULL) {	fprintf(stderr, NLS_CATGETS(catfd, arpSet, arp_hw_not_supp,				    "%s: hardware type not supported!\n"), DFLT_HW);	NLS_CATCLOSE(catfd)	return(-1);  }  if ((ap = get_aftype(DFLT_AF)) == NULL) {	fprintf(stderr, NLS_CATGETS(catfd, arpSet, arp_fam_not_supp,				    "%s: address family not supported!\n"), DFLT_AF);	NLS_CATCLOSE(catfd)	return(-1);  }  what = 0;  /* Fetch the command-line arguments. */  /* opterr = 0; */  while ((i = getopt_long(argc, argv, "A:H:adfp:nsei:t:vh?DNV",longopts, &lop)) != EOF) switch(i) {	case 'a':		what = 1;		opt_a = 1;		break;	case 'f':		what = 2;		break;	case 'd':		what = 3;		break;	case 's':		what = 4;		break;	case 'e':		opt_e = 1;		break;	case 'n':		opt_n = FLAG_NUM;		break;	case 'D':		opt_D = 1;		break;	case 'N':		opt_N = FLAG_SYM;		fprintf(stderr,"arp: -N not yet supported.\n");		break;	case 'v':		opt_v = 1;		break;	case 'A':	case 'p':		ap = get_aftype(optarg);		if (ap == NULL) {			fprintf(stderr, NLS_CATGETS(catfd, arpSet, arp_unkn_addr,						    "arp: %s: unknown address family.\n"),				optarg);			NLS_CATCLOSE(catfd)			exit(-1);		}		break;	case 'H':	case 't':		hw = get_hwtype(optarg);		if (hw == NULL) {			fprintf(stderr, NLS_CATGETS(catfd, arpSet, arp_unkn_hw,						    "arp: %s: unknown hardware type.\n"),				optarg);			NLS_CATCLOSE(catfd)			exit(-1);		}		hw_set = 1;		break;	case 'i':		strncpy(device,optarg,sizeof(device)-1);		device[sizeof(device)-1]='\0';		break;	case 'V':		version();	case '?':	case 'h':	default:		usage();  }  if (ap->af != AF_INET) {	fprintf(stderr, NLS_CATGETS(catfd, arpSet, arp_wrong_af,				    "arp: %s: kernel only supports 'inet'.\n"),			ap->name);	NLS_CATCLOSE(catfd)	exit(-1);  }  if (hw->alen <= 0) {	fprintf(stderr, NLS_CATGETS(catfd, arpSet, arp_wrong_hw,				    "arp: %s: hardware type without ARP support.\n"),			hw->name);	NLS_CATCLOSE(catfd)	exit(-1);  }  if ((sockfd = socket(AF_INET,SOCK_DGRAM,0)) <0)  {  	perror("socket");	NLS_CATCLOSE(catfd)  	exit(-1);  }  /* Now see what we have to do here... */  switch(what) {	case 0:		opt_e = 1;		what = arp_show(argv[optind]);		break;			case 1:		/* show an ARP entry in the cache */		what = arp_show(argv[optind]);		break;	case 2:		/* process an EtherFile */		what = arp_file(argv[optind]);		break;	case 3:		/* delete an ARP entry from the cache */		what = arp_del(&argv[optind]);		break;	case 4:		/* set an ARP entry in the cache */		what = arp_set(&argv[optind]);		break;	default:		usage();  }  NLS_CATCLOSE(catfd)  exit(what);}