Don't send proxy requests for incoming connections.
[tinc] / src / protocol_auth.c
index 908ab24..f4a30a4 100644 (file)
@@ -20,7 +20,6 @@
 
 #include "system.h"
 
-#include "splay_tree.h"
 #include "conf.h"
 #include "connection.h"
 #include "control.h"
@@ -140,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;
 
@@ -163,8 +162,8 @@ bool id_h(connection_t *c, const char *request) {
                c->allow_request = CONTROL;
                c->last_ping_time = time(NULL) + 3600;
 
-               free(c->name);
-                c->name = xstrdup("<control>");
+               free(c->name);
+               c->name = xstrdup("<control>");
 
                return send_request(c, "%d %d %d", ACK, TINC_CTL_VERSION_CURRENT, getpid());
        }
@@ -249,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;
 
@@ -303,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;
 }
@@ -509,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);
-               }
        }
 }