-extern edge_t *new_edge(void);
-extern void free_edge(edge_t *);
-extern avl_tree_t *new_edge_tree(void);
-extern void free_edge_tree(avl_tree_t *);
-extern void edge_add(edge_t *);
-extern void edge_del(edge_t *);
-extern edge_t *lookup_edge(struct node_t *, struct node_t *);
-extern void dump_edges(void);
-
-#endif /* __TINC_EDGE_H__ */
+extern edge_t *new_edge(void) __attribute__((__malloc__));
+extern void free_edge(edge_t *e);
+extern void init_edge_tree(splay_tree_t *tree);
+extern void edge_add(edge_t *e);
+extern void edge_del(edge_t *e);
+extern edge_t *lookup_edge(struct node_t *from, struct node_t *to);
+extern bool dump_edges(struct connection_t *c);
+
+#endif