src/server/daemon/httplistener.h

changeset 446
240ed6f945ca
parent 445
834351da593b
child 449
a28a5ccc894b
--- a/src/server/daemon/httplistener.h	Sat Dec 03 12:27:00 2022 +0100
+++ b/src/server/daemon/httplistener.h	Sat Dec 03 13:26:56 2022 +0100
@@ -34,6 +34,13 @@
 #include "config.h"
 #include "../util/systems.h"
 
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <netdb.h>
+#include <unistd.h>
+
 #include <openssl/bio.h> 
 #include <openssl/ssl.h> 
 #include <openssl/err.h> 
@@ -112,7 +119,15 @@
     // TODO: ssl/tls cipher, ... config
 };
 
+union ws_socketaddr {
+    struct sockaddr_in  addr4;
+    struct sockaddr_in6 addr6;
+};
+
 struct _ws_socket {
+    union ws_socketaddr addr;
+    struct sockaddr *sockaddr;
+    size_t sockaddr_size;
     int socket;
     WSBool listening;
     HttpSSL *ssl;
@@ -143,7 +158,15 @@
 void http_listener_set_next(HttpListener *listener, HttpListener *next);
 
 /*
+ * Connect to the listener's server socket
+ * Returns a file descriptor or -1
+ */
+int http_listener_connect(HttpListener *listener, WSBool ipv6);
+
+/*
  * shutdown all acceptor threads
+ * this should be called, before any new acceptors for the same socket
+ * are started
  */
 void http_listener_shutdown_acceptors(HttpListener *listener);
 

mercurial