1 #ifndef SERVER_H 2 #define SERVER_H 3 4 #include <event.h> 5 #include <pthread.h> 6 7 #include <hiredis/async.h> 8 #ifdef HAVE_SSL 9 #include <hiredis/hiredis.h> 10 #include <hiredis/hiredis_ssl.h> 11 #endif 12 13 struct worker; 14 struct conf; 15 16 struct server { 17 18 int fd; 19 struct event ev; 20 struct event_base *base; 21 22 struct conf *cfg; 23 24 #ifdef HAVE_SSL 25 /* SSL context & error code */ 26 redisSSLContext *ssl_context; 27 redisSSLContextError ssl_error; 28 #endif 29 30 /* worker threads */ 31 struct worker **w; 32 int next_worker; 33 34 /* log lock */ 35 struct { 36 pid_t self; 37 int fd; 38 struct timeval fsync_tv; 39 struct event *fsync_ev; 40 } log; 41 42 /* used to log auth message only once */ 43 pthread_mutex_t auth_log_mutex; 44 int auth_logged; 45 }; 46 47 struct server * 48 server_new(const char *cfg_file); 49 50 int 51 server_start(struct server *s); 52 53 #endif 54 55