int main(int argc, char **argv) { char errbuf[PCAP_ERRBUF_SIZE]; struct pcap_pkthdr *pkthdr; const u_char *pkt_data; Options options; parse_args(argc, argv, &options); if(options.list_devices) { show_devices(); exit(0); } // Create Handles for in and out pcap_t *in_handle = pcap_create(argv[1], errbuf); pcap_t *out_handle = pcap_create(argv[1], errbuf); if(!in_handle | !out_handle ) exit_error(errbuf, -1); int result = 0; // Set timeout result = pcap_set_timeout(in_handle, 1); // Header size up to window size result = pcap_set_timeout(out_handle, 1); // Header size up to window size handle_pcap_errors(in_handle, result, "set_timeout"); handle_pcap_errors(out_handle, result, "set_timeout"); // Activate! result = pcap_activate(out_handle); result = pcap_activate(in_handle); handle_pcap_errors(out_handle, result, "pcap_activate"); handle_pcap_errors(in_handle, result, "pcap_activate"); // Set Filter filter_on_port(out_handle, "src port ", options.port_str); filter_on_port(in_handle, "dst port ", options.port_str); // Count packet lenghts on port int out_byte_count = 0; int in_byte_count = 0; for(int i = 0; i < 100; i++) { pcap_next_ex(out_handle, &pkthdr, &pkt_data); out_byte_count += pkthdr->len; pcap_next_ex(in_handle, &pkthdr, &pkt_data); in_byte_count += pkthdr->len; } printf("In Bytes: %d\n", in_byte_count); printf("Out Bytes: %d\n", out_byte_count); return 0; }
int h_device(struct cmd_desc *cmdd, struct atom *atoms) { if (atoms == (struct atom *)VERBOSE_HELP) { printf("%s - Set device\n" "%s - Show available devices\n" "Format:\n" "curr\tindex\tdev_name\tdetailed_name\tn_channels\tn_bits\n" "%s [index]\n" "\tindex: set device to that given by the index\n", cmdd->name, cmdd->name, cmdd->name); return 1; } ++atoms; if (atoms->type == Terminator) { show_devices(); return 1; } if (atoms->type != Numeric) return -TST_ERR_WRONG_ARG; return __h_device(atoms->val); }
int main(int argc, char **argv) { char *busid = NULL; char *remote_host = NULL; enum { cmd_unknown = 0, cmd_use_by_usbip, cmd_use_by_other, cmd_list, cmd_list2, cmd_allusbip, cmd_export_to, cmd_unexport, cmd_help, } cmd = cmd_unknown; if (geteuid() != 0) g_warning("running non-root?"); for (;;) { int c; int index = 0; c = getopt_long(argc, argv, "u:o:hlLae:x:b:", longopts, &index); if (c == -1) break; switch (c) { case 'u': cmd = cmd_use_by_usbip; busid = optarg; break; case 'o' : cmd = cmd_use_by_other; busid = optarg; break; case 'l' : cmd = cmd_list; break; case 'L' : cmd = cmd_list2; break; case 'a' : cmd = cmd_allusbip; break; case 'b': busid = optarg; break; case 'e': cmd = cmd_export_to; remote_host = optarg; break; case 'x': cmd = cmd_unexport; remote_host = optarg; break; case 'h': /* fallthrough */ case '?': cmd = cmd_help; break; default: g_error("getopt"); } //if (cmd) // break; } switch (cmd) { case cmd_use_by_usbip: use_device_by_usbip(busid); break; case cmd_use_by_other: use_device_by_other(busid); break; case cmd_list: show_devices(); break; case cmd_list2: show_devices2(); break; #if 0 case cmd_allusbip: allusbip(); break; case cmd_export_to: export_to(remote_host, busid); break; case cmd_unexport: unexport_from(remote_host, busid); break; #endif case cmd_help: /* fallthrough */ case cmd_unknown: show_help(); break; default: g_error("NOT REACHED"); } return 0; }
int main(void) { return show_devices(); }