]> git.meshlink.io Git - meshlink/blobdiff - src/net_socket.c
Move outgoing_list to mesh->outgoings.
[meshlink] / src / net_socket.c
index 0b1e1fb645d428c7291726e4f52eb9b9e086feef..ecf2c26ba9a9c8c544458d31f71795bf5bfa4f56 100644 (file)
@@ -23,6 +23,7 @@
 #include "connection.h"
 #include "list.h"
 #include "logger.h"
+#include "meshlink_internal.h"
 #include "meta.h"
 #include "net.h"
 #include "netutl.h"
@@ -42,7 +43,6 @@ int max_connection_burst = 100;
 
 listen_socket_t listen_socket[MAXSOCKETS];
 int listen_sockets;
-list_t *outgoing_list = NULL;
 
 /* Setup sockets */
 
@@ -198,12 +198,12 @@ int setup_vpn_in_socket(const sockaddr_t *sa) {
 #endif
 
 #if defined(SOL_IP) && defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DO)
-       if(myself->options & OPTION_PMTU_DISCOVERY) {
+       if(mesh->self->options & OPTION_PMTU_DISCOVERY) {
                option = IP_PMTUDISC_DO;
                setsockopt(nfd, SOL_IP, IP_MTU_DISCOVER, (void *)&option, sizeof(option));
        }
 #elif defined(IPPROTO_IP) && defined(IP_DONTFRAGMENT)
-       if(myself->options & OPTION_PMTU_DISCOVERY) {
+       if(mesh->self->options & OPTION_PMTU_DISCOVERY) {
                option = 1;
                setsockopt(nfd, IPPROTO_IP, IP_DONTFRAGMENT, (void *)&option, sizeof(option));
        }
@@ -212,12 +212,12 @@ int setup_vpn_in_socket(const sockaddr_t *sa) {
 #endif
 
 #if defined(SOL_IPV6) && defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DO)
-       if(myself->options & OPTION_PMTU_DISCOVERY) {
+       if(mesh->self->options & OPTION_PMTU_DISCOVERY) {
                option = IPV6_PMTUDISC_DO;
                setsockopt(nfd, SOL_IPV6, IPV6_MTU_DISCOVER, (void *)&option, sizeof(option));
        }
 #elif defined(IPPROTO_IPV6) && defined(IPV6_DONTFRAG)
-       if(myself->options & OPTION_PMTU_DISCOVERY) {
+       if(mesh->self->options & OPTION_PMTU_DISCOVERY) {
                option = 1;
                setsockopt(nfd, IPPROTO_IPV6, IPV6_DONTFRAG, (void *)&option, sizeof(option));
        }
@@ -292,7 +292,7 @@ static void do_outgoing_pipe(connection_t *c, char *command) {
        setenv("REMOTEADDRESS", host, true);
        setenv("REMOTEPORT", port, true);
        setenv("NODE", c->name, true);
-       setenv("NAME", myself->name, true);
+       setenv("NAME", mesh->self->name, true);
 
        int result = system(command);
        if(result < 0)
@@ -463,7 +463,7 @@ begin:
 
        c->status.connecting = true;
        c->name = xstrdup(outgoing->name);
-       c->outcompression = myself->connection->outcompression;
+       c->outcompression = mesh->self->connection->outcompression;
        c->last_ping_time = now.tv_sec;
 
        connection_add(c);
@@ -607,7 +607,7 @@ void handle_new_meta_connection(void *data, int flags) {
 
        c = new_connection();
        c->name = xstrdup("<unknown>");
-       c->outcompression = myself->connection->outcompression;
+       c->outcompression = mesh->self->connection->outcompression;
 
        c->address = sa;
        c->hostname = sockaddr2hostname(&sa);
@@ -644,10 +644,10 @@ static void free_outgoing(outgoing_t *outgoing) {
 void try_outgoing_connections(void) {
        /* If there is no outgoing list yet, create one. Otherwise, mark all outgoings as deleted. */
 
-       if(!outgoing_list) {
-               outgoing_list = list_alloc((list_action_t)free_outgoing);
+       if(!mesh->outgoings) {
+               mesh->outgoings = list_alloc((list_action_t)free_outgoing);
        } else {
-               for list_each(outgoing_t, outgoing, outgoing_list)
+               for list_each(outgoing_t, outgoing, mesh->outgoings)
                        outgoing->timeout = -1;
        }
 
@@ -668,7 +668,7 @@ void try_outgoing_connections(void) {
 
                bool found = false;
 
-               for list_each(outgoing_t, outgoing, outgoing_list) {
+               for list_each(outgoing_t, outgoing, mesh->outgoings) {
                        if(!strcmp(outgoing->name, name)) {
                                found = true;
                                outgoing->timeout = 0;
@@ -679,14 +679,14 @@ void try_outgoing_connections(void) {
                if(!found) {
                        outgoing_t *outgoing = xzalloc(sizeof *outgoing);
                        outgoing->name = name;
-                       list_insert_tail(outgoing_list, outgoing);
+                       list_insert_tail(mesh->outgoings, outgoing);
                        setup_outgoing_connection(outgoing);
                }
        }
 
        /* Terminate any connections whose outgoing_t is to be deleted. */
 
-       for list_each(connection_t, c, connection_list) {
+       for list_each(connection_t, c, mesh->connections) {
                if(c->outgoing && c->outgoing->timeout == -1) {
                        c->outgoing = NULL;
                        logger(DEBUG_CONNECTIONS, LOG_INFO, "No more outgoing connection to %s", c->name);
@@ -696,7 +696,7 @@ void try_outgoing_connections(void) {
 
        /* Delete outgoing_ts for which there is no ConnectTo. */
 
-       for list_each(outgoing_t, outgoing, outgoing_list)
+       for list_each(outgoing_t, outgoing, mesh->outgoings)
                if(outgoing->timeout == -1)
-                       list_delete_node(outgoing_list, node);
+                       list_delete_node(mesh->outgoings, node);
 }