int main(int argc, char **argv) { int ch, mode = 0; char *arg = NULL; pid = getpid(); thiszone = gmt2local(0); while ((ch = getopt(argc, argv, "acd:f:Ii:nprstA:HPR")) != -1) switch (ch) { case 'a': case 'c': case 'p': case 'r': case 'H': case 'P': case 'R': case 's': case 'I': if (mode) { usage(); /*NOTREACHED*/ } mode = ch; arg = NULL; break; case 'f': exit(file(optarg) ? 1 : 0); case 'd': case 'i': if (mode) { usage(); /*NOTREACHED*/ } mode = ch; arg = optarg; break; case 'n': nflag = 1; break; case 't': tflag = 1; break; case 'A': if (mode) { usage(); /*NOTREACHED*/ } mode = 'a'; repeat = atoi(optarg); if (repeat < 0) { usage(); /*NOTREACHED*/ } break; default: usage(); } argc -= optind; argv += optind; switch (mode) { case 'a': case 'c': if (argc != 0) { usage(); /*NOTREACHED*/ } dump(0, mode == 'c'); break; case 'd': if (argc != 0) { usage(); /*NOTREACHED*/ } delete(arg); break; case 'I': #ifdef SIOCSDEFIFACE_IN6 /* XXX: check SIOCGDEFIFACE_IN6 as well? */ if (argc > 1) { usage(); /*NOTREACHED*/ } else if (argc == 1) { if (strcmp(*argv, "delete") == 0 || if_nametoindex(*argv)) setdefif(*argv); else errx(1, "invalid interface %s", *argv); } getdefif(); /* always call it to print the result */ break; #else errx(1, "not supported yet"); /*NOTREACHED*/ #endif case 'p': if (argc != 0) { usage(); /*NOTREACHED*/ } plist(); break; case 'i': ifinfo(arg, argc, argv); break; case 'r': if (argc != 0) { usage(); /*NOTREACHED*/ } rtrlist(); break; case 's': if (argc < 2 || argc > 4) usage(); exit(set(argc, argv) ? 1 : 0); case 'H': if (argc != 0) { usage(); /*NOTREACHED*/ } harmonize_rtr(); break; case 'P': if (argc != 0) { usage(); /*NOTREACHED*/ } pfx_flush(); break; case 'R': if (argc != 0) { usage(); /*NOTREACHED*/ } rtr_flush(); break; case 0: if (argc != 1) { usage(); /*NOTREACHED*/ } get(argv[0]); break; } exit(0); }
int main(int argc, char **argv) { int ch; int aflag = 0, dflag = 0, sflag = 0, Hflag = 0, pflag = 0, rflag = 0, Pflag = 0, Rflag = 0; pid = getpid(); thiszone = gmt2local(0); while ((ch = getopt(argc, argv, "acndfIilprstA:HPR")) != -1) switch ((char)ch) { case 'a': aflag = 1; break; case 'c': cflag = 1; break; case 'd': dflag = 1; break; case 'I': #ifdef SIOCSDEFIFACE_IN6 /* XXX: check SIOCGDEFIFACE_IN6 as well? */ if (argc > 2) setdefif(argv[2]); getdefif(); /* always call it to print the result */ exit(0); #else errx(1, "not supported yet"); /*NOTREACHED*/ #endif case 'i' : argc -= optind; argv += optind; if (argc < 1) usage(); ifinfo(argc, argv); exit(0); case 'n': nflag = 1; continue; case 'p': pflag = 1; break; case 'f' : if (argc != 3) usage(); file(argv[2]); exit(0); case 'l' : /* obsolete, ignored */ break; case 'r' : rflag = 1; break; case 's': sflag = 1; break; case 't': tflag = 1; break; case 'A': aflag = 1; repeat = atoi(optarg); if (repeat < 0) usage(); break; case 'H' : Hflag = 1; break; case 'P': Pflag = 1; break; case 'R': Rflag = 1; break; default: usage(); } argc -= optind; argv += optind; if (aflag || cflag) { dump(0); exit(0); } if (dflag) { if (argc != 1) usage(); delete(argv[0]); exit(0); } if (pflag) { plist(); exit(0); } if (rflag) { rtrlist(); exit(0); } if (sflag) { if (argc < 2 || argc > 4) usage(); exit(set(argc, argv) ? 1 : 0); } if (Hflag) { harmonize_rtr(); exit(0); } if (Pflag) { pfx_flush(); exit(0); } if (Rflag) { rtr_flush(); exit(0); } if (argc != 1) usage(); get(argv[0]); exit(0); }
int main(int argc, char **argv) { int ch; int aflag = 0, dflag = 0, sflag = 0, Hflag = 0, pflag = 0, rflag = 0, Pflag = 0, Rflag = 0, lflag = 0, xflag = 0, wflag = 0; pid = getpid(); while ((ch = getopt(argc, argv, "acndfIilprstA:HPRxwW")) != -1) switch ((char) ch) { case 'a': aflag = 1; break; case 'c': cflag = 1; break; case 'd': dflag = 1; break; case 'I': if (argc > 2) setdefif(argv[2]); getdefif(); /* always call it to print the result */ exit(0); case 'i' : argc -= optind; argv += optind; if (argc < 1) usage(); ifinfo(argc, argv); exit(0); case 'n': nflag = 1; continue; case 'p': pflag = 1; break; case 'f' : if (argc != 3) usage(); file(argv[2]); exit(0); case 'l' : lflag = 1; break; case 'r' : rflag = 1; break; case 's': sflag = 1; break; case 't': tflag = 1; break; case 'A': aflag = 1; repeat = atoi(optarg); if (repeat < 0) usage(); break; case 'H' : Hflag = 1; break; case 'P': Pflag = 1; break; case 'R': Rflag = 1; break; case 'x': xflag = 1; lflag = 1; break; case 'w': wflag = 1; break; case 'W': if (argc != 3) usage(); write_cga_parameters(argv[2]); exit(0); default: usage(); } argc -= optind; argv += optind; if (aflag || cflag) { if (lflag) dump_ext(0, xflag); else dump(0); exit(0); } if (dflag) { if (argc != 1) usage(); delete(argv[0]); exit(0); } if (pflag) { plist(); exit(0); } if (rflag) { rtrlist(); exit(0); } if (sflag) { if (argc < 2 || argc > 4) usage(); exit(set(argc, argv) ? 1 : 0); } if (Hflag) { harmonize_rtr(); exit(0); } if (Pflag) { pfx_flush(); exit(0); } if (Rflag) { rtr_flush(); exit(0); } if (wflag) { read_cga_parameters(); exit(0); } if (argc != 1) usage(); get(argv[0]); exit(0); }