]> jfr.im git - solanum.git/blobdiff - include/listener.h
add SNO_FARCONNECT to the help text (#260)
[solanum.git] / include / listener.h
index 48b37f47016fd36ca6e1d79219d7ae8f1f112f30..f251e3146e9e2b9ef2370f73627429242a62cd8d 100644 (file)
@@ -31,19 +31,21 @@ struct Client;
 
 struct Listener
 {
-       struct Listener *next;  /* list node pointer */
+       rb_dlink_node lnode;    /* list node */
        const char *name;       /* listener name */
        rb_fde_t *F;            /* file descriptor */
        int ref_count;          /* number of connection references */
        int active;             /* current state of listener */
        int ssl;                /* ssl listener */
        int defer_accept;       /* use TCP_DEFER_ACCEPT */
+       bool sctp;              /* use SCTP */
        int wsock;              /* wsock listener */
-       struct rb_sockaddr_storage addr;
-       char vhost[HOSTLEN + 1];        /* virtual name of listener */
+       struct rb_sockaddr_storage addr[2];
+       char vhost[(HOSTLEN * 2) + 1];  /* virtual name of listener */
 };
 
-extern void add_listener(int port, const char *vaddr_ip, int family, int ssl, int defer_accept, int wsock);
+extern void add_tcp_listener(int port, const char *vaddr_ip, int family, int ssl, int defer_accept, int wsock);
+extern void add_sctp_listener(int port, const char *vaddr_ip1, const char *vaddr_ip2, int ssl, int wsock);
 extern void close_listener(struct Listener *listener);
 extern void close_listeners(void);
 extern const char *get_listener_name(const struct Listener *listener);