X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=4c5956e8b9fc324a302c59d7fe850cf400f1d2f2;hp=59ec5f94ef30b701d2bbbc13d4d14e6543ed5bc4;hb=b3074590b184c141419cf4926820dc0d78380535;hpb=7bd7f5b4363f222340e5c058c243d31c576fba88 diff --git a/src/net.c b/src/net.c index 59ec5f94..4c5956e8 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.112 2001/06/05 19:39:54 guus Exp $ + $Id: net.c,v 1.35.4.119 2001/07/15 14:21:12 guus Exp $ */ #include "config.h" @@ -45,32 +45,24 @@ #include #include -#ifdef HAVE_OPENSSL_RAND_H -# include -#else -# include -#endif - -#ifdef HAVE_OPENSSL_EVP_H -# include -#else -# include -#endif +#include +#include +#include -#ifdef HAVE_OPENSSL_ERR_H -# include -#else -# include -#endif - -#ifdef HAVE_OPENSSL_PEM_H -# include -#else -# include +#ifndef HAVE_RAND_PSEUDO_BYTES +#define RAND_pseudo_bytes RAND_bytes #endif #ifdef HAVE_TUNTAP -#include LINUX_IF_TUN_H + #ifdef HAVE_LINUX + #ifdef LINUX_IF_TUN_H + #include LINUX_IF_TUN_H + #else + #include + #endif + #else + #include + #endif #endif #include @@ -99,7 +91,7 @@ int total_socket_in = 0; int total_socket_out = 0; config_t *upstreamcfg; -static int seconds_till_retry; +int seconds_till_retry = 5; int keylifetime = 0; int keyexpires = 0; @@ -134,7 +126,7 @@ cp /* Encrypt the packet. */ - RAND_bytes(inpkt->salt, sizeof(inpkt->salt)); + RAND_pseudo_bytes(inpkt->salt, sizeof(inpkt->salt)); EVP_EncryptInit(&ctx, cl->cipher_pkttype, cl->cipher_pktkey, cl->cipher_pktkey + cl->cipher_pkttype->key_len); EVP_EncryptUpdate(&ctx, outpkt.salt, &outlen, inpkt->salt, inpkt->len + sizeof(inpkt->salt)); @@ -180,6 +172,8 @@ cp outlen += outpad; outpkt.len = outlen - sizeof(outpkt.salt); + total_socket_in += outlen; + receive_packet(cl, &outpkt); cp } @@ -364,8 +358,7 @@ cp taptype = TAP_TYPE_TUNTAP; } #endif -#endif -#ifdef HAVE_FREEBSD +#else taptype = TAP_TYPE_TUNTAP; #endif cp @@ -1017,11 +1010,10 @@ cp myself = NULL; } - close(tap_fd); - - /* Execute tinc-down script right after shutting down the interface */ execute_script("tinc-down"); + close(tap_fd); + destroy_connection_tree(); cp return; @@ -1198,9 +1190,8 @@ cp { cl->status.outgoing = 0; signal(SIGALRM, sigalrm_handler); - seconds_till_retry = 5; alarm(seconds_till_retry); - syslog(LOG_NOTICE, _("Trying to re-establish outgoing connection in 5 seconds")); + syslog(LOG_NOTICE, _("Trying to re-establish outgoing connection in %d seconds"), seconds_till_retry); } /* Deactivate */ @@ -1427,7 +1418,7 @@ cp if(debug_lvl >= DEBUG_STATUS) syslog(LOG_INFO, _("Regenerating symmetric key")); - RAND_bytes(myself->cipher_pktkey, myself->cipher_pktkeylength); + RAND_pseudo_bytes(myself->cipher_pktkey, myself->cipher_pktkeylength); send_key_changed(myself, NULL); keyexpires = time(NULL) + keylifetime; }