X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=9094d61d5d2aebaadd6ff1784020ebedb013b70b;hp=1ce8071d9d0216fb0cadc68586fe0d3560ca5508;hb=b5b04910b928c63a31a0859f04bf067ca9bd1cc2;hpb=0b310bf406dbe58afe37fa31156b9ea47599d7be diff --git a/src/net.c b/src/net.c index 1ce8071d..9094d61d 100644 --- 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-2013 Guus Sliepen + 2000-2015 Guus Sliepen 2006 Scott Lamb 2011 Loïc Grenié @@ -181,7 +181,7 @@ static void periodic_handler(void *data) { if(contradicting_del_edge > 100 && contradicting_add_edge > 100) { logger(DEBUG_ALWAYS, LOG_WARNING, "Possible node with same Name as us! Sleeping %d seconds.", sleeptime); - usleep(sleeptime * 1000000LL); + nanosleep(&(struct timespec){sleeptime, 0}, NULL); sleeptime *= 2; if(sleeptime < 0) sleeptime = 3600; @@ -314,7 +314,7 @@ static void sigalrm_handler(void *data) { #endif int reload_configuration(void) { - char *fname = NULL; + char fname[PATH_MAX]; /* Reread our own configuration file */ @@ -328,9 +328,8 @@ int reload_configuration(void) { read_config_options(config_tree, NULL); - xasprintf(&fname, "%s" SLASH "hosts" SLASH "%s", confbase, myself->name); + snprintf(fname, sizeof fname, "%s" SLASH "hosts" SLASH "%s", confbase, myself->name); read_config_file(config_tree, fname); - free(fname); /* Parse some options that are allowed to be changed while tinc is running */ @@ -407,13 +406,12 @@ int reload_configuration(void) { if(c->status.control) continue; - xasprintf(&fname, "%s" SLASH "hosts" SLASH "%s", confbase, c->name); + snprintf(fname, sizeof fname, "%s" SLASH "hosts" SLASH "%s", confbase, c->name); struct stat s; if(stat(fname, &s) || s.st_mtime > last_config_check) { logger(DEBUG_CONNECTIONS, LOG_INFO, "Host config file of %s has been changed", c->name); terminate_connection(c, c->edge); } - free(fname); } last_config_check = now.tv_sec;