]> git.meshlink.io Git - meshlink/blobdiff - src/subnet.h
Merge branch 'master' into 1.1
[meshlink] / src / subnet.h
index c50ac6c8577c4cb0f5a0bbe8417b13dfde6d214d..22af0d3a006ec9ba21e382fdc9092a1e69e8f962 100644 (file)
@@ -1,6 +1,6 @@
 /*
     subnet.h -- header for subnet.c
-    Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
+    Copyright (C) 2000-2009 Guus Sliepen <guus@tinc-vpn.org>,
                   2000-2005 Ivo Timmermans
 
     This program is free software; you can redistribute it and/or modify
@@ -53,6 +53,7 @@ typedef struct subnet_t {
 
        subnet_type_t type;             /* subnet type (IPv4? IPv6? MAC? something even weirder?) */
        time_t expires;                 /* expiry time */
+       int weight;                     /* weight (higher value is higher priority) */
 
        /* And now for the actual subnet: */
 
@@ -70,8 +71,8 @@ extern subnet_t *new_subnet(void) __attribute__ ((__malloc__));
 extern void free_subnet(subnet_t *);
 extern void init_subnets(void);
 extern void exit_subnets(void);
-extern avl_tree_t *new_subnet_tree(void) __attribute__ ((__malloc__));
-extern void free_subnet_tree(avl_tree_t *);
+extern splay_tree_t *new_subnet_tree(void) __attribute__ ((__malloc__));
+extern void free_subnet_tree(splay_tree_t *);
 extern void subnet_add(struct node_t *, subnet_t *);
 extern void subnet_del(struct node_t *, subnet_t *);
 extern void subnet_update(struct node_t *, subnet_t *, bool);
@@ -81,6 +82,7 @@ extern subnet_t *lookup_subnet(const struct node_t *, const subnet_t *);
 extern subnet_t *lookup_subnet_mac(const mac_t *);
 extern subnet_t *lookup_subnet_ipv4(const ipv4_t *);
 extern subnet_t *lookup_subnet_ipv6(const ipv6_t *);
-extern void dump_subnets(void);
+extern int dump_subnets(struct evbuffer *);
+extern void subnet_cache_flush(void);
 
 #endif                                                 /* __TINC_SUBNET_H__ */