X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=e1580e651ad4d202d1769112ee8a0b05a1c22302;hp=475ea0c98e7213dce8da31532ac42310298d86af;hb=b79e55b183898911e2c2b7b151b281aef8d474e1;hpb=eefa28059ab989c915a7d95fb4ae728abd7ce713 diff --git a/src/net.c b/src/net.c index 475ea0c9..e1580e65 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.192 2003/07/22 20:55:19 guus Exp $ + $Id: net.c,v 1.35.4.195 2003/07/29 22:59:00 guus Exp $ */ #include "system.h" @@ -39,6 +39,7 @@ #include "protocol.h" #include "route.h" #include "subnet.h" +#include "xalloc.h" bool do_purge = false; @@ -153,7 +154,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) @@ -206,7 +207,7 @@ static void check_dead_connections(void) } else { if(c->status.remove) { logger(LOG_WARNING, _("Old connection_t for %s (%s) status %04x still lingering, deleting..."), - c->name, c->hostname, c->status); + c->name, c->hostname, *(uint32_t *)&c->status); connection_del(c); continue; } @@ -254,7 +255,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; } @@ -339,7 +340,8 @@ void main_loop(void) ifdebug(STATUS) logger(LOG_INFO, _("Regenerating symmetric key")); RAND_pseudo_bytes(myself->key, myself->keylength); - EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, myself->key, myself->key + myself->cipher->key_len); + if(myself->cipher) + EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, myself->key, myself->key + myself->cipher->key_len); send_key_changed(broadcast, myself); keyexpires = now + keylifetime; }