X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=9048d507f54fe1ec92925b2c54e0c9cc46303868;hp=309079b830dc4278443e663a5987025b7ad997d0;hb=5e2ded68bfc7b3a1bfa600c1ce46144eb50e57a2;hpb=1e2bdc2b6d28c76c63fc9fd36169b90fa0994388 diff --git a/src/net.c b/src/net.c index 309079b8..9048d507 100644 --- a/src/net.c +++ b/src/net.c @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: net.c,v 1.35.4.118 2001/07/04 08:41:36 guus Exp $ + $Id: net.c,v 1.35.4.121 2001/07/19 12:29:40 guus Exp $ */ #include "config.h" @@ -54,7 +54,15 @@ #endif #ifdef HAVE_TUNTAP -#include LINUX_IF_TUN_H + #ifdef HAVE_LINUX + #ifdef LINUX_IF_TUN_H + #include LINUX_IF_TUN_H + #else + #include + #endif + #else + #include + #endif #endif #include @@ -560,7 +568,7 @@ cp */ int setup_outgoing_connection(char *name) { - connection_t *ncn; + connection_t *ncn, *old; struct hostent *h; config_t const *cfg; cp @@ -570,6 +578,16 @@ cp return -1; } + /* Make sure we don't make an outgoing connection to a host that is already in our connection list */ + + if((old = lookup_id(name))) + { + if(debug_lvl >= DEBUG_CONNECTIONS) + syslog(LOG_NOTICE, _("We are already connected to %s."), name); + old->status.outgoing = 1; + return 0; + } + ncn = new_connection(); asprintf(&ncn->name, "%s", name); @@ -1105,7 +1123,7 @@ cp return; } - cl = lookup_connection(ntohl(from.sin_addr.s_addr), ntohs(from.sin_port)); + cl = lookup_active(ntohl(from.sin_addr.s_addr), ntohs(from.sin_port)); if(!cl) {