X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=7d8c58c0f4ec66a9a9d1a215f7e83677ee6fcc41;hp=c4637dabf1633585e06fde49dcaaeb87a069391b;hb=5ac4179df66747a7013a10d576c23531d2b4fc58;hpb=714fb32d0377ed9f5643ed8f0bd914843d12266b diff --git a/src/net.c b/src/net.c index c4637dab..7d8c58c0 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.194 2003/07/29 10:50:15 guus Exp $ + $Id: net.c,v 1.35.4.197 2003/08/17 12:05:08 guus Exp $ */ #include "system.h" @@ -39,8 +39,10 @@ #include "protocol.h" #include "route.h" #include "subnet.h" +#include "xalloc.h" bool do_purge = false; +volatile bool running = false; time_t now = 0; @@ -153,7 +155,7 @@ void terminate_connection(connection_t *c, bool report) c->node->connection = NULL; if(c->socket) - close(c->socket); + closesocket(c->socket); if(c->edge) { if(report) @@ -254,7 +256,7 @@ static void check_network_activity(fd_set * f) ifdebug(CONNECTIONS) logger(LOG_DEBUG, _("Error while connecting to %s (%s): %s"), c->name, c->hostname, strerror(result)); - close(c->socket); + closesocket(c->socket); do_outgoing_connection(c); continue; } @@ -279,7 +281,7 @@ static void check_network_activity(fd_set * f) /* this is where it all happens... */ -void main_loop(void) +int main_loop(void) { fd_set fset; struct timeval tv; @@ -293,7 +295,9 @@ void main_loop(void) last_config_check = now; srand(now); - for(;;) { + running = true; + + while(running) { now = time(NULL); tv.tv_sec = 1 + (rand() & 7); /* Approx. 5 seconds, randomized to prevent global synchronisation effects */ @@ -309,7 +313,7 @@ void main_loop(void) strerror(errno)); cp_trace(); dump_connections(); - return; + return 1; } continue; @@ -378,7 +382,7 @@ void main_loop(void) if(!read_server_config()) { logger(LOG_ERR, _("Unable to reread configuration file, exitting.")); - exit(1); + return 1; } /* Close connections to hosts that have a changed or deleted host config file */ @@ -404,8 +408,8 @@ void main_loop(void) /* Try to make outgoing connections */ try_outgoing_connections(); - - continue; } } + + return 0; }