libclamav/regex_list.h
98cf4932
ad387e52
 
 
 #ifdef NDEBUG
 #define massert(x) (void)(0)
 #else
 /*debug version, massert enabled*/
 
 #define __massert_fail(expr,file,line) (void)cli_errmsg("Assertion failed at %s:%d\n %s\n",file,line,expr)
 
 #define massert(expr) ((void) ((expr) ? (void)0 : (__massert_fail (#expr,__FILE__,__LINE__))))
 #endif
 
98cf4932
 struct node_stack {
 	struct tree_node** data;
 	size_t capacity;
 	size_t cnt;
 };
 
 struct regex_matcher {
 	struct cli_matcher* root_hosts;
 	struct tree_node* root_regex;
26e636f9
 	size_t root_hosts_cnt;
98cf4932
 	int list_inited;
 	int list_loaded;
 	int list_built;
 	struct node_stack node_stack;
 	struct node_stack node_stack_alt;
 };
 
ad387e52
 int regex_list_match(struct regex_matcher* matcher,const char* real_url,const char* display_url,int hostOnly,const char** info,int is_whitelist);
98cf4932
 int init_regex_list(struct regex_matcher* matcher);
ad387e52
 int load_regex_matcher(struct regex_matcher* matcher,FILE* fd,unsigned int options,int is_whitelist);
98cf4932
 void regex_list_cleanup(struct regex_matcher* matcher);
 void regex_list_done(struct regex_matcher* matcher);
 int is_regex_ok(struct regex_matcher* matcher);
6cecbecd
 
 void setup_matcher_engine(void);/* global, non thread-safe */
98cf4932
 #endif
 
 #endif