Update "now" after connect() when making outgoing connections.
[tinc] / src / net_socket.c
index 11b6320..8983d28 100644 (file)
@@ -1,7 +1,7 @@
 /*
     net_socket.c -- Handle various kinds of sockets.
     Copyright (C) 1998-2005 Ivo Timmermans,
-                  2000-2014 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-2016 Guus Sliepen <guus@tinc-vpn.org>
                   2006      Scott Lamb <slamb@slamb.org>
                   2009      Florian Forster <octo@verplant.org>
 
@@ -82,6 +82,11 @@ static void configure_tcp(connection_t *c) {
        option = IPTOS_LOWDELAY;
        setsockopt(c->socket, SOL_IP, IP_TOS, (void *)&option, sizeof option);
 #endif
+
+#if defined(IPPROTO_IPV6) && defined(IPV6_TCLASS) && defined(IPTOS_LOWDELAY)
+       option = IPTOS_LOWDELAY;
+       setsockopt(c->socket, IPPROTO_IPV6, IPV6_TCLASS, (void *)&option, sizeof option);
+#endif
 }
 
 static bool bind_to_interface(int sd) {
@@ -547,6 +552,7 @@ begin:
 
        /* Now that there is a working socket, fill in the rest and register this connection. */
 
+       c->last_ping_time = time(NULL);
        c->status.connecting = true;
        c->name = xstrdup(outgoing->name);
 #ifndef DISABLE_LEGACY
@@ -630,7 +636,6 @@ void setup_outgoing_connection(outgoing_t *outgoing) {
 
 remove:
        list_delete(outgoing_list, outgoing);
-       free(outgoing);
 }
 
 /*