src/server/daemon/httplistener.h

changeset 446
240ed6f945ca
parent 445
834351da593b
child 449
a28a5ccc894b
equal deleted inserted replaced
445:834351da593b 446:240ed6f945ca
31 31
32 #include "sessionhandler.h" 32 #include "sessionhandler.h"
33 #include "threadpools.h" 33 #include "threadpools.h"
34 #include "config.h" 34 #include "config.h"
35 #include "../util/systems.h" 35 #include "../util/systems.h"
36
37 #include <arpa/inet.h>
38 #include <netinet/in.h>
39 #include <sys/socket.h>
40 #include <sys/types.h>
41 #include <netdb.h>
42 #include <unistd.h>
36 43
37 #include <openssl/bio.h> 44 #include <openssl/bio.h>
38 #include <openssl/ssl.h> 45 #include <openssl/ssl.h>
39 #include <openssl/err.h> 46 #include <openssl/err.h>
40 47
110 SSL_CTX *sslctx; 117 SSL_CTX *sslctx;
111 118
112 // TODO: ssl/tls cipher, ... config 119 // TODO: ssl/tls cipher, ... config
113 }; 120 };
114 121
122 union ws_socketaddr {
123 struct sockaddr_in addr4;
124 struct sockaddr_in6 addr6;
125 };
126
115 struct _ws_socket { 127 struct _ws_socket {
128 union ws_socketaddr addr;
129 struct sockaddr *sockaddr;
130 size_t sockaddr_size;
116 int socket; 131 int socket;
117 WSBool listening; 132 WSBool listening;
118 HttpSSL *ssl; 133 HttpSSL *ssl;
119 uint32_t ref; // reference counter 134 uint32_t ref; // reference counter
120 }; 135 };
141 * set the succeeding listener 156 * set the succeeding listener
142 */ 157 */
143 void http_listener_set_next(HttpListener *listener, HttpListener *next); 158 void http_listener_set_next(HttpListener *listener, HttpListener *next);
144 159
145 /* 160 /*
161 * Connect to the listener's server socket
162 * Returns a file descriptor or -1
163 */
164 int http_listener_connect(HttpListener *listener, WSBool ipv6);
165
166 /*
146 * shutdown all acceptor threads 167 * shutdown all acceptor threads
168 * this should be called, before any new acceptors for the same socket
169 * are started
147 */ 170 */
148 void http_listener_shutdown_acceptors(HttpListener *listener); 171 void http_listener_shutdown_acceptors(HttpListener *listener);
149 172
150 Acceptor* acceptor_new(HttpListener *listener); 173 Acceptor* acceptor_new(HttpListener *listener);
151 174

mercurial