Use splay trees instead of AVL trees.
[tinc] / src / node.h
index 2ea9692..83af5e3 100644 (file)
 #ifndef __TINC_NODE_H__
 #define __TINC_NODE_H__
 
-#include "avl_tree.h"
+#include "splay_tree.h"
 #include "connection.h"
-#include "event.h"
 #include "list.h"
 #include "subnet.h"
 
 typedef union node_status_t {
        struct {
-               int active:1;                           /* 1 if active.. */
+               int unused_active:1;                    /* 1 if active (not used for nodes) */
                int validkey:1;                         /* 1 if we currently have a valid key for him */
                int waitingforkey:1;                    /* 1 if we already sent out a request */
                int visited:1;                          /* 1 if this node has been visited by one of the graph algorithms */
@@ -66,9 +65,9 @@ typedef struct node_t {
        struct node_t *nexthop;                 /* nearest node from us to him */
        struct node_t *via;                     /* next hop for UDP packets */
 
-       avl_tree_t *subnet_tree;                /* Pointer to a tree of subnets belonging to this node */
+       splay_tree_t *subnet_tree;              /* Pointer to a tree of subnets belonging to this node */
 
-       avl_tree_t *edge_tree;                  /* Edges with this node as one of the endpoints */
+       splay_tree_t *edge_tree;                        /* Edges with this node as one of the endpoints */
 
        struct connection_t *connection;        /* Connection associated with this node (if a direct connection exists) */
 
@@ -80,12 +79,12 @@ typedef struct node_t {
        length_t minmtu;                        /* Probed minimum MTU */
        length_t maxmtu;                        /* Probed maximum MTU */
        int mtuprobes;                          /* Number of probes */
-       event_t *mtuevent;                      /* Probe event */
+       struct event mtuevent;                  /* Probe event */
 } node_t;
 
 extern struct node_t *myself;
-extern avl_tree_t *node_tree;
-extern avl_tree_t *node_udp_tree;
+extern splay_tree_t *node_tree;
+extern splay_tree_t *node_udp_tree;
 
 extern void init_nodes(void);
 extern void exit_nodes(void);