parser.c

来自「Firestorm NIDS是一个性能非常高的网络入侵检测系统 (NIDS)。目」· C语言 代码 · 共 72 行

C
72
字号
/** This file is part of Firestorm NIDS* Copyright (c) 2002 Gianni Tedesco* This program is released under the terms of the GNU GPL version 2**    Track relevent ruleset parser modules. Ruleset parsing is actually*    done inside the plugins.*/#include <string.h>#include <firestorm.h>#include <args.h>#include <loader.h>#include <cleanup.h>#include <packet.h>#include <alert.h>#include <signature.h>#include <parser.h>struct parser *parse_list=NULL;void parser_load(void){	struct plugin *p;	proc_parser_load fn;	static struct parser_api papi={		.size=sizeof(papi),		.parser_add=parser_add,		.parser_setup=parser_setup,		.args_parse=args_parse,		.signature_rule=signature_rule,		.signature_criteria=signature_criteria,		.signature_modifier=signature_modifier,		.signature_alert=signature_alert,		.signature_commit=signature_commit,		.signature_abort=signature_abort,	};	for(p=ld_list; p; p=p->next) {		if ( !(fn=loader_symbol(p, plugin_parser)) )			continue;		loader_perror(p, "parser", fn(&papi));	}}int parser_setup(char *type, char *file){	struct parser *p;	if ( !type ) return 0;	for(p=parse_list; p; p=p->next) {		if ( !strcmp(p->name, type) ) {			return p->load_file(file);		}	}	return 0;}int parser_add(struct parser *p){	if ( !p || !p->name || !p->load_file )		return 0;	/* Append to list */	p->next=parse_list;	parse_list=p;	return 1;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?