/* * firewall_list.h */ #include #include #include #include #include #include #define NULL 0 #define NIPQUAD(addr) \ ((unsigned char *)&addr)[0], \ ((unsigned char *)&addr)[1], \ ((unsigned char *)&addr)[2], \ ((unsigned char *)&addr)[3] struct gateway_list_node { unsigned int n; struct gateway_list_node *next; }; struct gateway_list_head { struct gateway_list_node *head; struct gateway_list_node *tail; }; struct printable_buffer { char *buff; int offset; }; /*list manipulating functions here*/ struct gateway_list_node *create_node(void); void init_list(struct gateway_list_head **iplh); void add_to_list(struct gateway_list_head **iplh, struct gateway_list_node *ipln); void remove_from_list(struct gateway_list_head **iplh, struct gateway_list_node *ipln); void destroy_list(struct gateway_list_head **iplh); int apply_function_to_list(struct gateway_list_head **iplh, int (*func)(struct gateway_list_node *, void *), void *param); int check_list_for_duplicates(struct gateway_list_head **iplh, int (*func)(struct gateway_list_node *, void *), void *param); int test_func(struct gateway_list_node *, void *);