1 #ifndef ETTERLOG_FUNCTIONS_H 2 #define ETTERLOG_FUNCTIONS_H 3 4 #include <ec_log.h> 5 #include <ec_profiles.h> 6 7 /* el_parser */ 8 EC_API_EXTERN void parse_options(int argc, char **argv); 9 10 /* el_analyze */ 11 EC_API_EXTERN void analyze(void); 12 EC_API_EXTERN void create_hosts_list(void); 13 14 /* el_main */ 15 EC_API_EXTERN void progress(int value, int max); 16 EC_API_EXTERN void set_color(int color); 17 EC_API_EXTERN void reset_color(void); 18 19 /* el_log */ 20 EC_API_EXTERN void open_log(char *file); 21 EC_API_EXTERN int get_header(struct log_global_header *hdr); 22 EC_API_EXTERN int get_packet(struct log_header_packet *pck, u_char **buf); 23 EC_API_EXTERN int get_info(struct log_header_info *inf, struct dissector_info *buf); 24 EC_API_EXTERN void concatenate(int argc, char **argv); 25 26 /* el_display */ 27 EC_API_EXTERN void display(void); 28 EC_API_EXTERN void set_display_regex(char *regex); 29 30 /* el_conn */ 31 EC_API_EXTERN void conn_table_create(void); 32 EC_API_EXTERN void conn_table_display(void); 33 EC_API_EXTERN void conn_decode(void); 34 EC_API_EXTERN void filcon_compile(char *conn); 35 EC_API_EXTERN int is_conn(struct log_header_packet *pck, int *versus); 36 #define VERSUS_SOURCE 0 37 #define VERSUS_DEST 1 38 39 /* el_target */ 40 EC_API_EXTERN void target_compile(char *target); 41 EC_API_EXTERN int is_target_pck(struct log_header_packet *pck); 42 EC_API_EXTERN int is_target_info(struct host_profile *hst); 43 EC_API_EXTERN int find_user(struct host_profile *hst, char *user); 44 45 /* el_profiles */ 46 EC_API_EXTERN int profile_add_info(struct log_header_info *inf, struct dissector_info *buf); 47 EC_API_EXTERN void *get_host_list_ptr(void); 48 49 /* el_stream */ 50 struct so_list { 51 int side; 52 struct packet_object po; 53 TAILQ_ENTRY(so_list) next; 54 }; 55 56 struct so_offset { 57 struct so_list *so_curr; 58 size_t po_off; 59 }; 60 61 struct stream_object { 62 TAILQ_HEAD (so_list_head, so_list) so_head; 63 struct so_offset side1; 64 struct so_offset side2; 65 }; 66 67 EC_API_EXTERN void stream_init(struct stream_object *so); 68 EC_API_EXTERN int stream_add(struct stream_object *so, struct log_header_packet *pck, char *buf); 69 EC_API_EXTERN struct so_list * stream_search(struct stream_object *so, const char *buf, size_t buflen, int mode); 70 EC_API_EXTERN int stream_read(struct stream_object *so, u_char *buf, size_t size, int mode); 71 #define STREAM_SIDE1 0 72 #define STREAM_SIDE2 ~0 73 EC_API_EXTERN int stream_move(struct stream_object *so, size_t offset, int whence, int mode); 74 75 /* el_decode */ 76 77 enum { 78 APP_LAYER_TCP = 51, 79 APP_LAYER_UDP = 52, 80 }; 81 82 #define FUNC_EXTRACTOR(func) int func(struct stream_object *so) 83 #define FUNC_EXTRACTOR_PTR(func) int (*func)(struct stream_object *so) 84 #define EXECUTE_EXTRACTOR(x, so, ret) do{ \ 85 if (x) \ 86 ret += x(so); \ 87 }while(0) 88 89 #define STREAM so 90 91 EC_API_EXTERN int decode_stream(struct stream_object *so); 92 #define STREAM_SKIPPED 0 93 #define STREAM_DECODED 1 94 EC_API_EXTERN void add_extractor(u_int8 level, u_int32 type, FUNC_EXTRACTOR_PTR(extractor)); 95 EC_API_EXTERN void * get_extractor(u_int8 level, u_int32 type); 96 EC_API_EXTERN int decode_to_file(char *host, char *proto, char *file); 97 98 #endif 99 100 /* EOF */ 101 102 // vim:ts=3:expandtab 103 104