4 #include <event2/listener.h>
5 #include <event2/util.h>
7 #include <openssl/ssl.h>
12 #include "connections.h"
14 #include "workqueue.h"
17 struct event_base
*base
;
18 struct evdns_base
*evdns_base
;
20 pthread_mutex_t listeners_mutex
;
21 struct evconnlistener
**listeners
;
22 size_t listeners_allocated
;
23 size_t listeners_used
;
29 /* a collection of all connections */
30 struct connections connections
;
32 /* worker thread wrangler */
33 struct workqueue workqueue
;
35 /* server lua context, currently to load and parse config file */
39 /* each worker thread gets a reference to the server and its own lua state */
40 struct server_worker_context
{
41 struct server
*server
;
45 struct server
* server_new(void);
47 int server_init(struct server
*s
, char *conf_file
);
49 void server_free(struct server
*s
);
51 void server_heartbeat_event(evutil_socket_t
, short, void *);
53 int server_refresh_ssl_context(lua_State
*, struct server
*);