1 #ifndef __TCPCRYPT_TCPCRYPTD_H__ 2 #define __TCPCRYPT_TCPCRYPTD_H__ 3 4 #define REDIRECT_PORT 65530 5 6 #define MAX_PARAM 12 7 8 enum { 9 XP_ALWAYS = 0, 10 XP_DEFAULT, 11 XP_DEBUG, 12 XP_NOISY, 13 }; 14 15 enum { 16 TEST_CRYPT = 0, 17 TEST_TCP, 18 }; 19 20 enum { 21 TEST_STATE_START = 0, 22 TEST_STATE_CONNECTING, 23 TEST_STATE_REQ_SENT, 24 TEST_SUCCESS, 25 TEST_STATE_DONE, 26 }; 27 28 enum { 29 TEST_ERR_TIMEOUT = 666, 30 TEST_ERR_DISCONNECT = 667, 31 TEST_ERR_BADINPUT = 668, 32 TEST_ERR_UNEXPECTED_CRYPT = 669, 33 TEST_ERR_NO_CRYPT = 670, 34 }; 35 36 struct params { 37 char *p_params[MAX_PARAM]; 38 int p_paramc; 39 }; 40 41 struct conf { 42 int cf_divert; 43 int cf_verbose; 44 int cf_disable; 45 const char *cf_ctl; 46 int cf_nocache; 47 int cf_accept; 48 int cf_modify; 49 int cf_dummy; 50 int cf_profile; 51 int cf_test; 52 int cf_debug; 53 struct params cf_test_params; 54 struct params cf_divert_params; 55 int cf_nat; 56 int cf_cipher; 57 int cf_mac; 58 int cf_rsa_client_hack; 59 int cf_disable_timers; 60 int cf_disable_network_test; 61 int cf_rdr; 62 const char *cf_test_server; 63 const char *cf_random_path; 64 const char *cf_jail_dir; 65 const char *cf_jail_user; 66 }; 67 68 struct fd; 69 typedef void (*fd_cb)(struct fd *fd); 70 71 enum { 72 FDS_IDLE = 0, 73 FDS_READ, 74 FDS_WRITE, 75 FDS_DEAD 76 }; 77 78 struct fd { 79 int fd_fd; 80 fd_cb fd_cb; 81 int fd_state; 82 void *fd_priv; 83 struct fd *fd_next; 84 }; 85 86 extern struct conf _conf; 87 88 typedef void (*timer_cb)(void *a); 89 typedef int (*packet_hook)(int rc, void *packet, int len, int flags); 90 91 extern void *add_timer(unsigned int usec, timer_cb cb, void *arg); 92 extern struct fd *add_fd(int fd, fd_cb cb); 93 extern void clear_timer(void *timer); 94 extern void xprintf(int level, char *fmt, ...); 95 extern void hexdump(void *p, int len); 96 extern void errssl(int x, char *fmt, ...); 97 extern void set_time(struct timeval *tv); 98 extern void tcpcryptd(void); 99 extern void set_packet_hook(int post, packet_hook hook); 100 extern char *driver_param(int x); 101 extern char *test_param(int x); 102 extern void set_nonblocking(int x); 103 104 extern uint64_t xbe64toh(uint64_t x); 105 extern uint64_t xhtobe64(uint64_t x); 106 107 #endif /* __TCPCRYPT_TCPCRYPTD_H__ */ 108