]> git.meshlink.io Git - meshlink/blobdiff - src/net_setup.c
Use libevent to handle key expiration.
[meshlink] / src / net_setup.c
index 65965908002540ab94340526771bb5d62cafc8bd..8aecfcdcd5d3603a496647a5f7421359288ba2b6 100644 (file)
@@ -32,7 +32,6 @@
 #include "conf.h"
 #include "connection.h"
 #include "device.h"
-#include "tevent.h"
 #include "graph.h"
 #include "logger.h"
 #include "net.h"
@@ -537,6 +536,11 @@ bool setup_myself(void)
 
                memcpy(&listen_socket[listen_sockets].sa, aip->ai_addr, aip->ai_addrlen);
                listen_sockets++;
+
+               if(listen_sockets >= MAXSOCKETS) {
+                       logger(LOG_WARNING, _("Maximum of %d listening sockets reached"), MAXSOCKETS);
+                       break;
+               }
        }
 
        freeaddrinfo(ai);
@@ -560,7 +564,6 @@ bool setup_network_connections(void)
 
        now = time(NULL);
 
-       init_tevents();
        init_connections();
        init_subnets();
        init_nodes();
@@ -623,6 +626,8 @@ void close_network_connections(void)
        }
 
        for(i = 0; i < listen_sockets; i++) {
+               event_del(&listen_socket[i].ev_tcp);
+               event_del(&listen_socket[i].ev_udp);
                close(listen_socket[i].tcp);
                close(listen_socket[i].udp);
        }
@@ -638,7 +643,6 @@ void close_network_connections(void)
        exit_subnets();
        exit_nodes();
        exit_connections();
-       exit_tevents();
 
        execute_script("tinc-down", envp);