#ifndef _LIBCT_PROTO_H #define _LIBCT_PROTO_H /* FIXME: Rename this file pablo... */ #include "linux_list.h" #include struct cta_proto; struct ctproto_handler { struct list_head head; char *name; u_int16_t protonum; int (*parse)(char c, char *argv[], struct ip_conntrack_tuple *orig, struct ip_conntrack_tuple *reply, union ip_conntrack_proto *proto, unsigned int *flags); void (*print_tuple)(struct ip_conntrack_tuple *t); void (*print_proto)(union ip_conntrack_proto *proto); int (*final_check)(unsigned int flags); void (*help)(); struct option *opts; unsigned int option_offset; }; extern void register_proto(struct ctproto_handler *h); extern void unregister_proto(struct ctproto_handler *h); extern struct ctproto_handler *findproto(char *name); #define NIPQUAD(addr) \ ((unsigned char *)&addr)[0], \ ((unsigned char *)&addr)[1], \ ((unsigned char *)&addr)[2], \ ((unsigned char *)&addr)[3] #endif