]> git.meshlink.io Git - meshlink/blobdiff - src/net_socket.c
Dont setup outgoing connection to blacklisted nodes
[meshlink] / src / net_socket.c
index c6fc124261101053ae3e756deb47ccb18b87a587..2564a9c1bd264460cd1d3028b64c3234ffa04090 100644 (file)
@@ -545,6 +545,11 @@ void handle_new_meta_connection(event_loop_t *loop, void *data, int flags) {
        fd = accept(l->tcp.fd, &sa.sa, &len);
 
        if(fd < 0) {
+               if(errno == EINVAL) { // TODO: check if Windows agrees
+                       event_loop_stop(loop);
+                       return;
+               }
+
                logger(DEBUG_ALWAYS, LOG_ERR, "Accepting a new connection failed: %s", sockstrerror(sockerrno));
                return;
        }
@@ -653,6 +658,7 @@ void try_outgoing_connections(meshlink_handle_t *mesh) {
        // TODO: Drop support for ConnectTo since AutoConnect is now always on?
        for(config_t *cfg = lookup_config(mesh->config, "ConnectTo"); cfg; cfg = lookup_config_next(mesh->config, cfg)) {
                char *name;
+               bool blacklisted;
                get_config_string(cfg, &name);
 
                if(!check_id(name)) {
@@ -663,6 +669,10 @@ void try_outgoing_connections(meshlink_handle_t *mesh) {
                        continue;
                }
 
+               get_config_bool(lookup_config(mesh->config, "blacklisted"), &blacklisted);
+               if (blacklisted)
+                       continue;
+
                bool found = false;
 
                for list_each(outgoing_t, outgoing, mesh->outgoings) {