static int input_pcap_mod_register(struct mod_reg *mod) { int res = POM_OK; static struct input_reg_info in_pcap_interface; memset(&in_pcap_interface, 0, sizeof(struct input_reg_info)); in_pcap_interface.name = "pcap_interface"; in_pcap_interface.description = "Read packets from a live interface"; in_pcap_interface.flags = INPUT_REG_FLAG_LIVE; in_pcap_interface.mod = mod; in_pcap_interface.init = input_pcap_interface_init; in_pcap_interface.open = input_pcap_interface_open; in_pcap_interface.read = input_pcap_read; in_pcap_interface.close = input_pcap_close; in_pcap_interface.cleanup = input_pcap_cleanup; in_pcap_interface.interrupt = input_pcap_interrupt; res += input_register(&in_pcap_interface); static struct input_reg_info in_pcap_file; memset(&in_pcap_file, 0, sizeof(struct input_reg_info)); in_pcap_file.name = "pcap_file"; in_pcap_file.description = "Read packets from a pcap file"; in_pcap_file.mod = mod; in_pcap_file.init = input_pcap_file_init; in_pcap_file.open = input_pcap_file_open; in_pcap_file.read = input_pcap_read; in_pcap_file.close = input_pcap_close; in_pcap_file.cleanup = input_pcap_cleanup; in_pcap_file.interrupt = input_pcap_interrupt; res += input_register(&in_pcap_file); static struct input_reg_info in_pcap_dir; memset(&in_pcap_dir, 0, sizeof(struct input_reg_info)); in_pcap_dir.name = "pcap_dir"; in_pcap_dir.description = "Read packets from multiple pcap files in a directory"; in_pcap_dir.mod = mod; in_pcap_dir.init = input_pcap_dir_init; // Do the open at read() time because scanning can take quite some time //in_pcap_dir.open = input_pcap_dir_open; in_pcap_dir.read = input_pcap_read; in_pcap_dir.close = input_pcap_close; in_pcap_dir.cleanup = input_pcap_cleanup; in_pcap_dir.interrupt = input_pcap_interrupt; res += input_register(&in_pcap_dir); return res; }
static int input_kismet_mod_register(struct mod_reg *mod) { static struct input_reg_info in_kismet_drone; memset(&in_kismet_drone, 0, sizeof(struct input_reg_info)); in_kismet_drone.name = "kismet_drone"; in_kismet_drone.description = "Connect to a Kismet drone and read the packets"; in_kismet_drone.flags = INPUT_REG_FLAG_LIVE; in_kismet_drone.mod = mod; in_kismet_drone.init = input_kismet_drone_init; in_kismet_drone.open = input_kismet_drone_open; in_kismet_drone.read = input_kismet_drone_read; in_kismet_drone.close = input_kismet_drone_close; in_kismet_drone.cleanup = input_kismet_drone_cleanup; in_kismet_drone.interrupt = input_kismet_drone_interrupt; return input_register(&in_kismet_drone); }
bool machine_init() { struct list_link *link = machines; struct machine *m; /* Validate machine option */ if (!machine_name) { LOG_E("No machine selected!\n"); return false; } while ((m = list_get_next(&link))) if (!strcmp(machine_name, m->name)) machine = m; /* Exit if machine has not been found */ if (!machine) { LOG_E("Machine \"%s\" not recognized!\n", machine_name); return false; } /* Display machine name and description */ LOG_I("Machine: %s (%s)\n", machine->name, machine->description); if (machine->init && !machine->init(machine)) { machine_cleanup(); return false; } /* Register for quit events */ input_config.descs = input_descs; input_config.num_descs = ARRAY_SIZE(input_descs); input_config.callback = machine_event; input_config.data = NULL; input_register(&input_config, false); /* Reset machine */ machine_reset(); return true; }
static void __init netlink_init(void) { input_register(&netlink_ops); }
static void __init proc_init(void) { input_register(&proc_ops); }