コード例 #1
0
ファイル: output_tap.c プロジェクト: elfixit/pom-ng
int output_tap_mod_register(struct mod_reg *mod) {


	static struct output_reg_info output_tap = { 0 };
	output_tap.name = "tap";
	output_tap.description = "Send packets to a virtual tap interface";
	output_tap.mod = mod;

	output_tap.init = output_tap_init;
	output_tap.open = output_tap_open;
	output_tap.close = output_tap_close;
	output_tap.cleanup = output_tap_cleanup;

	static struct addon_plugin_pload_reg addon_tap = { 0 };
	addon_tap.name = "tap";
	addon_tap.mod = mod;

	addon_tap.open = output_tap_open;
	addon_tap.close = output_tap_close;

	static struct addon_pload_param_reg params[] = {
		{ "ifname", "string" },
		{ "persistent", "bool" },
		{ "filter", "string" },
		{ 0 }
	};

	addon_tap.pload_params = params;

	if (output_register(&output_tap) != POM_OK ||
		addon_plugin_pload_register(&addon_tap) != POM_OK) {
		output_tap_mod_unregister();
		return POM_ERR;
	}

	return POM_OK;
}
コード例 #2
0
ファイル: output_file.c プロジェクト: dkarametos/pom-ng
int output_file_mod_register(struct mod_reg *mod) {


	static struct output_reg_info output_file = { 0 };
	output_file.name = "file";
	output_file.api_ver = OUTPUT_API_VER;
	output_file.mod = mod;

	output_file.init = output_file_init;
	output_file.open = output_file_open;
	output_file.close = output_file_close;
	output_file.cleanup = output_file_cleanup;

	static struct addon_plugin_pload_reg addon_file = { 0 };
	addon_file.name = "file";
	addon_file.mod = mod;

	addon_file.pload_open = addon_file_pload_open;
	addon_file.pload_write = output_file_pload_write;
	addon_file.pload_close = output_file_pload_close;

	static struct addon_pload_param_reg params[] = {
		{ "filename", "string" },
		{ 0 }
	};

	addon_file.pload_params = params;


	if (output_register(&output_file) != POM_OK ||
		addon_plugin_pload_register(&addon_file) != POM_OK) {
		output_file_mod_unregister();
		return POM_ERR;
	}

	return POM_OK;
}