if (what == RTACTION_SHOW) i = route_info(afname,options);
if (opt_h) { if (!afname[0]) usage();
int main(int argc, char **argv){	int i,lop,what=0;	struct option longopts[]=	{		AFTRANS_OPTS,		{"extend",	0,	0,	'e'},		{"verbose",	0,	0,	'v'},		{"version",	0,	0,	'V'},		{"numeric",	0,	0,	'n'},		{"symbolic",	0,	0,	'N'},		{"protocol",	1,	0,	'A'},		{"cache",	0,	0,	'C'},		{"fib",		0,	0,	'F'},		{"help",	0,	0,	'h'},		{NULL,		0,	0,	0}	};		char **tmp;	char *progname;	int options;#if I18N        bindtextdomain("net-tools", "/usr/share/locale");        textdomain("net-tools");#endif	getroute_init(); 			/* Set up AF routing support */	setroute_init();	afname[0] = '\0';	progname=argv[0];		/* getopts and -net wont work :-/ */	for(tmp=argv;*tmp;tmp++) {		if (!strcmp(*tmp, "-net"))			strcpy(*tmp, "#net");		else if (!strcmp(*tmp, "-host"))			strcpy(*tmp, "#host");	}		/* Fetch the command-line arguments. */	while ((i = getopt_long(argc, argv, "A:eCFhnNVv?", longopts, &lop)) != EOF) switch(i) {		case -1:			break;		case 'n':			opt_n |= FLAG_NUM;			break;		case 'N':			opt_n |= FLAG_SYM;			break;		case 'v':			opt_v |= FLAG_VERBOSE;			break;		case 'e':			opt_e++;			break;		case 1:			if (lop < 0 || lop >= AFTRANS_CNT) {				EINTERN("route.c","longopts 1 range");				break;			}			if ((i = aftrans_opt(longopts[lop].name))) 				exit(i);			break;		case 'C':			opt_fc |= FLAG_CACHE;			break;		case 'F':			opt_fc |= FLAG_FIB;			break;		case 'A':			if ((i = aftrans_opt(optarg)))				exit(i);			break;		case 'V':			version();		case 'h':		case '?':			opt_h++;			break;		default:			usage();	}		argv += optind;	argc -= optind;		if (opt_h) {		if (!afname[0])			usage();		else			what = RTACTION_HELP;	} else {			if (!afname[0])			/* this will initialise afname[] */			aftrans_def("route", progname, DFLT_AF);		/* Do we have to show the contents of the routing table? */		if (*argv == NULL) {			what = RTACTION_SHOW;		} else {			if (!strcmp(*argv, "add"))				what = RTACTION_ADD;			else if (!strcmp(*argv, "del") || !strcmp(*argv, "delete"))				what = RTACTION_DEL;			else if (!strcmp(*argv,"flush"))				what = RTACTION_FLUSH;			else 				usage();		}	}	options = (opt_e & FLAG_EXT) | opt_n | opt_fc | opt_v;	if (!opt_fc)		options |= FLAG_FIB;	if (what == RTACTION_SHOW)		i = route_info(afname,options);	else		i = route_edit(what,afname,options,++argv);	if (i == E_OPTERR)		usage();	return (i);}