Exemple #1
0
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;

}
Exemple #2
0
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);
}
Exemple #3
0
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;
}
Exemple #4
0
static void __init netlink_init(void)
{
	input_register(&netlink_ops);
}
Exemple #5
0
static void __init proc_init(void)
{
	input_register(&proc_ops);
}