X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet_socket.c;h=767e91e92b30ba92d1af9ded372760ed2647ce72;hp=526d382a41d37d24ae8a718e95c21fbebd52fc9c;hb=cef40b8b978694fc0e7c02e292fcbb60806bf028;hpb=3e61c7233b087b8400c29ca7a8d079aad8b706d8 diff --git a/src/net_socket.c b/src/net_socket.c index 526d382a..767e91e9 100644 --- a/src/net_socket.c +++ b/src/net_socket.c @@ -604,9 +604,12 @@ void setup_outgoing_connection(outgoing_t *outgoing) { if(n && n->connection) { logger(DEBUG_CONNECTIONS, LOG_INFO, "Already connected to %s", outgoing->name); - - n->connection->outgoing = outgoing; - return; + if(!n->connection->outgoing) { + n->connection->outgoing = outgoing; + return; + } else { + goto remove; + } } init_configuration(&outgoing->config_tree); @@ -617,12 +620,16 @@ void setup_outgoing_connection(outgoing_t *outgoing) { if(n) outgoing->aip = outgoing->ai = get_known_addresses(n); if(!outgoing->ai) { - logger(DEBUG_ALWAYS, LOG_ERR, "No address known for %s", outgoing->name); - return; + logger(DEBUG_ALWAYS, LOG_DEBUG, "No address known for %s", outgoing->name); + goto remove; } } do_outgoing_connection(outgoing); + return; + +remove: + list_delete(outgoing_list, outgoing); } /*