#ifndef _PLUGIN_H #define _PLUGIN_H #include "netpkt.h" #include "list.h" extern int server_add(unsigned int gameid, struct in_addr *ip, u_int16_t port1, u_int16_t port2); struct scan_ports { unsigned short portlo; unsigned short porthi; unsigned short gameid; }; extern int pkt_send(struct in_addr *dstip, unsigned int dstport, char *buf, unsigned int size); extern int pkt_send_portarr(struct in_addr *dstip, struct scan_ports *portarr, char *buf, unsigned int size); extern int pkt_check_portarr(struct net_pkt *pkt, struct scan_ports *portarr); extern int pkt_memcmp(struct net_pkt *pkt, unsigned int offset, char *search, unsigned int size); extern int server_add_pkt(unsigned int gameid, struct net_pkt *pkt); struct hlswmaster_plugin { /* must be first */ struct list_head list; char name[32]; int (*init)(struct list_head *config); int (*fini)(void); int (*scan)(void); int (*parse)(struct net_pkt *pkt); int (*gc)(int timeout); }; extern void register_plugin(struct hlswmaster_plugin *me); extern void unregister_plugin(struct hlswmaster_plugin *me); #endif