X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=ba5db2ea2e743f28d904ab480b6e41f8615dd691;hb=40666a5f5b85aa0151c3ba60950267f3c2a3a6bc;hp=59917c6c93f254a39af173c2564406e6f360b9d6;hpb=ff306f0cdaedb50de1472e7c1fb55de922a6ca60;p=tinc diff --git a/src/protocol_auth.c b/src/protocol_auth.c index 59917c6c..ba5db2ea 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -139,7 +139,7 @@ bool send_id(connection_t *c) { minor = myself->connection->protocol_minor; } - if(proxytype) + if(proxytype && c->outgoing) if(!send_proxyrequest(c)) return false; @@ -160,10 +160,10 @@ bool id_h(connection_t *c, const char *request) { if(name[0] == '^' && !strcmp(name + 1, controlcookie)) { c->status.control = true; c->allow_request = CONTROL; - c->last_ping_time = time(NULL) + 3600; + c->last_ping_time = now.tv_sec + 3600; - free(c->name); - c->name = xstrdup(""); + free(c->name); + c->name = xstrdup(""); return send_request(c, "%d %d %d", ACK, TINC_CTL_VERSION_CURRENT, getpid()); } @@ -248,7 +248,7 @@ bool send_metakey(connection_t *c) { if(!cipher_open_blowfish_ofb(&c->outcipher)) return false; - + if(!digest_open_sha1(&c->outdigest, -1)) return false; @@ -302,7 +302,7 @@ bool send_metakey(connection_t *c) { cipher_get_nid(&c->outcipher), digest_get_nid(&c->outdigest), c->outmaclength, c->outcompression, hexkey); - + c->status.encryptout = true; return result; } @@ -508,34 +508,21 @@ bool send_ack(connection_t *c) { } static void send_everything(connection_t *c) { - splay_node_t *node, *node2; - node_t *n; - subnet_t *s; - edge_t *e; - /* Send all known subnets and edges */ if(tunnelserver) { - for(node = myself->subnet_tree->head; node; node = node->next) { - s = node->data; + for splay_each(subnet_t, s, myself->subnet_tree) send_add_subnet(c, s); - } return; } - for(node = node_tree->head; node; node = node->next) { - n = node->data; - - for(node2 = n->subnet_tree->head; node2; node2 = node2->next) { - s = node2->data; + for splay_each(node_t, n, node_tree) { + for splay_each(subnet_t, s, n->subnet_tree) send_add_subnet(c, s); - } - for(node2 = n->edge_tree->head; node2; node2 = node2->next) { - e = node2->data; + for splay_each(edge_t, e, n->edge_tree) send_add_edge(c, e); - } } }