#if (!defined(CON_HEAP_H_)) #define CON_HEAP_H_ #include #include #include typedef struct _Heap_ { int size; int (*cmp)(const void *key1, const void *key2); void (*unalloc)(void *data); void **btree; } Heap; struct conq { int dead; time_t lastwrite; char *fname; struct in_addr ip_src, ip_dst; u_short sport, dport; pcap_dumper_t *dumper; u_quad_t hits; struct conq *rev; TAILQ_ENTRY(conq) glue; }; void heap_init(Heap *heap, int (*cmp)(const void *key1, const void *key2), void (*unalloc)(void *data)); void heap_destory(Heap *heap); int heap_insert(Heap *heap, const void *data); int heap_extract(Heap *heap, void **data); int compare(struct conq *conep, struct conq *ctwop); char *tcp_genfname(u_char *data, struct pcap_pkthdr *h, u_char *p); int get_tcpsession(u_char *packet, Heap *heap, struct conq **cq); void disassemble_fname(char *filename); char *chomp(char *s); void handle_sessions(struct pcap_pkthdr *h, u_char *p); #define HEAP_SIZE(heap) ((heap)->size) #define HEAP_PEEK(heap) ((heap)->btree == NULL ? NULL : (heap)->btree[0]) #endif /* CON_HEAP_H_ */