int main(int argc, char *argv[]) { char *url = (char*)argv[1]; if(url == NULL) return 0; av_register_all(); printf("Loading %s\n", url); if(!strncmp(url, "http://", 7)) test_http(url); if(!strncmp(url, "rtsp://", 7)) test_rtsp(url); if(!strncmp(url, "mms://", 6)) test_mms(url); if(!strncmp(url, "udp://", 6)) test_udp(url); if(!strncmp(url, "rtp://", 6)) test_rtp(url); return 1; }
int main(int argc, char *argv[]) { int raw_sock, tcp_sock, udp_sock; if (geteuid() != 0) errx(-1, "FAIL: root privilege required"); raw_sock = socket(PF_INET, SOCK_RAW, 0); if (raw_sock == -1) err(-1, "FAIL: socket(PF_INET, SOCK_RAW)"); tcp_sock = socket(PF_INET, SOCK_STREAM, 0); if (raw_sock == -1) err(-1, "FAIL: socket(PF_INET, SOCK_STREAM)"); udp_sock = socket(PF_INET, SOCK_DGRAM, 0); if (raw_sock == -1) err(-1, "FAIL: socket(PF_INET, SOCK_DGRAM)"); test_ttl(raw_sock, tcp_sock, udp_sock); test_loop(raw_sock, tcp_sock, udp_sock); test_if(raw_sock, tcp_sock, udp_sock); test_addr(raw_sock, tcp_sock, udp_sock); close(udp_sock); close(tcp_sock); close(raw_sock); test_udp(); return (0); }
int main(int argc, char *argv[]) { int c, lopt=0; char *ptr, localname[1024], *localport; struct addrinfo *aip; /* end main1 */ /* include main2 */ opterr = 0; /* don't want getopt() writing to stderr */ while ( (c = getopt(argc, argv, "0i:l:v")) != -1) { switch (c) { case '0': zerosum = 1; break; case 'i': device = optarg; /* pcap device */ break; case 'l': /* local IP address and port #: a.b.c.d.p */ if ( (ptr = strrchr(optarg, '.')) == NULL) usage("invalid -l option"); *ptr++ = 0; /* null replaces final period */ localport = ptr; /* service name or port number */ strncpy(localname, optarg, sizeof(localname)); lopt = 1; break; case 'v': verbose = 1; break; case '?': usage("unrecognized option"); } } /* end main2 */ /* include main3 */ if (optind != argc-2) usage("missing <host> and/or <serv>"); /* 4convert destination name and service */ aip = Host_serv(argv[optind], argv[optind+1], AF_INET, SOCK_DGRAM); dest = aip->ai_addr; /* don't freeaddrinfo() */ destlen = aip->ai_addrlen; /* * Need local IP address for source IP address for UDP datagrams. * Can't specify 0 and let IP choose, as we need to know it for * the pseudoheader to calculate the UDP checksum. * If -l option supplied, then use those values; otherwise, * connect a UDP socket to the destination to determine the right * source address. */ if (lopt) { /* 4convert local name and service */ aip = Host_serv(localname, localport, AF_INET, SOCK_DGRAM); local = aip->ai_addr; /* don't freeaddrinfo() */ locallen = aip->ai_addrlen; } else { int s; s = Socket(AF_INET, SOCK_DGRAM, 0); Connect(s, dest, destlen); /* kernel chooses correct local address for dest */ locallen = sizeof(locallookup); local = (struct sockaddr *)&locallookup; Getsockname(s, local, &locallen); if (locallookup.sin_addr.s_addr == htonl(INADDR_ANY)) err_quit("Can't determine local address - use -l\n"); close(s); } open_output(); /* open output, either raw socket or libnet */ open_pcap(); /* open packet capture device */ setuid(getuid()); /* don't need superuser privileges anymore */ Signal(SIGTERM, cleanup); Signal(SIGINT, cleanup); Signal(SIGHUP, cleanup); test_udp(); cleanup(0); }