X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=59917c6c93f254a39af173c2564406e6f360b9d6;hp=ccb7976c2700813131a62206f8cd7d3d1443db75;hb=ff306f0cdaedb50de1472e7c1fb55de922a6ca60;hpb=268c8545aaf83b7433f43402f5c77e39e20006ef diff --git a/src/protocol_auth.c b/src/protocol_auth.c index ccb7976c..59917c6c 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -20,7 +20,6 @@ #include "system.h" -#include "splay_tree.h" #include "conf.h" #include "connection.h" #include "control.h" @@ -65,7 +64,7 @@ static bool send_proxyrequest(connection_t *c) { memcpy(s4req + 2, &c->address.in.sin_port, 2); memcpy(s4req + 4, &c->address.in.sin_addr, 4); if(proxyuser) - strcpy(s4req + 8, proxyuser); + memcpy(s4req + 8, proxyuser, strlen(proxyuser)); s4req[sizeof s4req - 1] = 0; c->tcplen = 8; return send_meta(c, s4req, sizeof s4req); @@ -83,10 +82,10 @@ static bool send_proxyrequest(connection_t *c) { s5req[i++] = 2; s5req[i++] = 1; s5req[i++] = strlen(proxyuser); - strcpy(s5req + i, proxyuser); + memcpy(s5req + i, proxyuser, strlen(proxyuser)); i += strlen(proxyuser); s5req[i++] = strlen(proxypass); - strcpy(s5req + i, proxypass); + memcpy(s5req + i, proxypass, strlen(proxypass)); i += strlen(proxypass); c->tcplen += 2; } else { @@ -212,9 +211,8 @@ bool id_h(connection_t *c, const char *request) { if(!c->config_tree) { init_configuration(&c->config_tree); - if(!read_connection_config(c)) { - logger(DEBUG_ALWAYS, LOG_ERR, "Peer %s had unknown identity (%s)", c->hostname, - c->name); + if(!read_host_config(c->config_tree, c->name)) { + logger(DEBUG_ALWAYS, LOG_ERR, "Peer %s had unknown identity (%s)", c->hostname, c->name); return false; } @@ -506,7 +504,7 @@ bool send_ack(connection_t *c) { get_config_int(lookup_config(c->config_tree, "Weight"), &c->estimated_weight); - return send_request(c, "%d %s %d %x", ACK, myport, c->estimated_weight, c->options); + return send_request(c, "%d %s %d %x", ACK, myport, c->estimated_weight, (c->options & 0xffffff) | (experimental ? (PROT_MINOR << 24) : 0)); } static void send_everything(connection_t *c) { @@ -626,9 +624,6 @@ bool ack_h(connection_t *c, const char *request) { c->options &= ~OPTION_CLAMP_MSS; } - if(c->protocol_minor > 0) - c->node->status.ecdh = true; - /* Activate this connection */ c->allow_request = ALL;