X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet_setup.c;h=bab50fe4389d36aa1b168543ad356c24635a3e38;hp=dfed7e56f8424a7018dc01880f728fd0ac878c19;hb=63f8303a5dc1758876451a580a8317dbc3d295d6;hpb=8420a0c8bde1781db04dd2436eb9d5dca5a1732a diff --git a/src/net_setup.c b/src/net_setup.c index dfed7e56..bab50fe4 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -356,6 +356,7 @@ static bool setup_myself(void) { get_config_bool(lookup_config(config_tree, "DirectOnly"), &directonly); get_config_bool(lookup_config(config_tree, "StrictSubnets"), &strictsubnets); get_config_bool(lookup_config(config_tree, "TunnelServer"), &tunnelserver); + get_config_bool(lookup_config(config_tree, "LocalDiscovery"), &localdiscovery); strictsubnets |= tunnelserver; if(get_config_string(lookup_config(config_tree, "Mode"), &mode)) { @@ -580,6 +581,7 @@ static bool setup_myself(void) { /* Open sockets */ + listen_sockets = 0; cfg = lookup_config(config_tree, "BindToAddress"); do { @@ -601,9 +603,12 @@ static bool setup_myself(void) { return false; } - listen_sockets = 0; - for(aip = ai; aip; aip = aip->ai_next) { + if(listen_sockets >= MAXSOCKETS) { + logger(LOG_ERR, "Too many listening sockets"); + return false; + } + listen_socket[listen_sockets].tcp = setup_listen_socket((sockaddr_t *) aip->ai_addr);