X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fsubnet.h;h=c055edae8c9c423b3ab89761f2a27640801c7440;hp=30d13ca4798c95940fe6f3056e50b6f2ca4a7254;hb=e3220cacb5bc79fc56167e61b7a342f88a33a479;hpb=f75dcef72a81a337e847adf0bae54198894f65b9 diff --git a/src/subnet.h b/src/subnet.h index 30d13ca4..c055edae 100644 --- a/src/subnet.h +++ b/src/subnet.h @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: subnet.h,v 1.1.2.20 2002/09/09 21:25:16 guus Exp $ + $Id: subnet.h,v 1.1.2.26 2003/11/17 15:30:18 guus Exp $ */ #ifndef __TINC_SUBNET_H__ @@ -25,12 +25,12 @@ #include "net.h" -enum { +typedef enum subnet_type_t { SUBNET_MAC = 0, SUBNET_IPV4, SUBNET_IPV6, SUBNET_TYPES /* Guardian */ -}; +} subnet_type_t; typedef struct subnet_mac_t { mac_t address; @@ -51,9 +51,8 @@ typedef struct subnet_ipv6_t { typedef struct subnet_t { struct node_t *owner; /* the owner of this subnet */ - struct node_t *uplink; /* the uplink which we should send packets to for this subnet */ - int type; /* subnet type (IPv4? IPv6? MAC? something even weirder?) */ + subnet_type_t type; /* subnet type (IPv4? IPv6? MAC? something even weirder?) */ /* And now for the actual subnet: */ @@ -64,20 +63,21 @@ typedef struct subnet_t { } net; } subnet_t; -extern subnet_t *new_subnet(void); +extern int subnet_compare(const struct subnet_t *, const struct subnet_t *); +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); +extern avl_tree_t *new_subnet_tree(void) __attribute__ ((__malloc__)); extern void free_subnet_tree(avl_tree_t *); extern void subnet_add(struct node_t *, subnet_t *); extern void subnet_del(struct node_t *, subnet_t *); -extern char *net2str(subnet_t *); -extern subnet_t *str2net(char *); -extern subnet_t *lookup_subnet(struct node_t *, subnet_t *); -extern subnet_t *lookup_subnet_mac(mac_t *); -extern subnet_t *lookup_subnet_ipv4(ipv4_t *); -extern subnet_t *lookup_subnet_ipv6(ipv6_t *); +extern char *net2str(const subnet_t *); +extern subnet_t *str2net(const char *); +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); #endif /* __TINC_SUBNET_H__ */