X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=908ab2472cb2ad20981f4fed904588090f87a56f;hb=ce059e36fdb3d3049c278e8b2f36b03c93778996;hp=3fd80c47b944981a900f9409751bdec8bf00a907;hpb=76a3ada4eb4032172c3d780915a07680f9954d42;p=tinc diff --git a/src/protocol_auth.c b/src/protocol_auth.c index 3fd80c47..908ab247 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -65,7 +65,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 +83,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 +212,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 +505,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 & 0xffffff) | (PROT_MINOR << 24)); + 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 +625,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;