X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fprotocol_key.c;h=0ecad9badc565d4109d727b0f52ee6ee724b6506;hb=31f17d43346a9175aec7c29ce41c71b1d08f725e;hp=2453975d1fb345972bcfcb292d1c6bd771f80be5;hpb=6f9f6779e6bd1dd7bb795b42dad550863a386ca8;p=tinc diff --git a/src/protocol_key.c b/src/protocol_key.c index 2453975d..0ecad9ba 100644 --- a/src/protocol_key.c +++ b/src/protocol_key.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: protocol_key.c,v 1.1.4.14 2002/09/09 22:33:03 guus Exp $ + $Id: protocol_key.c,v 1.1.4.16 2003/05/06 21:13:18 guus Exp $ */ #include "config.h" @@ -135,6 +135,7 @@ int req_key_h(connection_t *c) if(to == myself) { /* Yes, send our own key back */ mykeyused = 1; from->received_seqno = 0; + memset(from->late, 0, sizeof(from->late)); send_ans_key(c, myself, from); } else { send_req_key(to->nexthop->connection, from, to); @@ -253,8 +254,15 @@ int ans_key_h(connection_t *c) from->digest = NULL; } + if(compression < 0 || compression > 11) { + syslog(LOG_ERR, _("Node %s (%s) uses bogus compression level!"), from->name, from->hostname); + return -1; + } + from->compression = compression; + EVP_EncryptInit_ex(&from->packet_ctx, from->cipher, NULL, from->key, from->key + from->cipher->key_len); + flush_queue(from); return 0;