Use read_host_config() where appropriate.
[tinc] / src / net.c
index f34c8c6..8a63615 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -1,7 +1,7 @@
 /*
     net.c -- most of the network code
     Copyright (C) 1998-2005 Ivo Timmermans,
-                  2000-2012 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-2013 Guus Sliepen <guus@tinc-vpn.org>
                   2006      Scott Lamb <slamb@slamb.org>
                   2011      Loïc Grenié <loic.grenie@gmail.com>
 
@@ -224,7 +224,7 @@ static void periodic_handler(void *data) {
 
                                if(!found) {
                                        logger(DEBUG_CONNECTIONS, LOG_INFO, "Autoconnecting to %s", n->name);
-                                       outgoing_t *outgoing = xmalloc_and_zero(sizeof *outgoing);
+                                       outgoing_t *outgoing = xzalloc(sizeof *outgoing);
                                        outgoing->name = xstrdup(n->name);
                                        list_insert_tail(outgoing_list, outgoing);
                                        setup_outgoing_connection(outgoing);
@@ -281,29 +281,13 @@ static void periodic_handler(void *data) {
 }
 
 void handle_meta_connection_data(connection_t *c) {
-       int result;
-       socklen_t len = sizeof result;
-
-       if(c->status.connecting) {
-               c->status.connecting = false;
-
-               getsockopt(c->socket, SOL_SOCKET, SO_ERROR, &result, &len);
-
-               if(!result)
-                       finish_connecting(c);
-               else {
-                       logger(DEBUG_CONNECTIONS, LOG_DEBUG, "Error while connecting to %s (%s): %s", c->name, c->hostname, sockstrerror(result));
-                       terminate_connection(c, false);
-                       return;
-               }
-       }
-
        if (!receive_meta(c)) {
                terminate_connection(c, c->status.active);
                return;
        }
 }
 
+#ifndef HAVE_MINGW
 static void sigterm_handler(void *data) {
        logger(DEBUG_ALWAYS, LOG_NOTICE, "Got %s signal", strsignal(((signal_t *)data)->signum));
        event_exit();
@@ -319,9 +303,10 @@ static void sigalrm_handler(void *data) {
        logger(DEBUG_ALWAYS, LOG_NOTICE, "Got %s signal", strsignal(((signal_t *)data)->signum));
        retry();
 }
+#endif
 
 int reload_configuration(void) {
-       char *fname;
+       char *fname = NULL;
 
        /* Reread our own configuration file */
 
@@ -421,7 +406,7 @@ int reload_configuration(void) {
                free(fname);
        }
 
-       last_config_check = time(NULL);
+       last_config_check = now.tv_sec;
 
        return 0;
 }