diff options
Diffstat (limited to 'libglouglou/libggnet.h')
-rw-r--r-- | libglouglou/libggnet.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/libglouglou/libggnet.h b/libglouglou/libggnet.h index 10116f2..a27e4e1 100644 --- a/libglouglou/libggnet.h +++ b/libglouglou/libggnet.h @@ -13,6 +13,9 @@ #define GGNET_DNSNAME_MAX 30 #define GGNET_CONN_FREEIDS_COUNT 65536 /* 2^16 as freeids are u_int16_t */ +#define GGNET_MANAGE_CONNID_TRUE 1 +#define GGNET_MANAGE_CONNID_FALSE 0 + struct ggnet_node { LIST_ENTRY(ggnet_node) entry; struct in_addr addr; @@ -22,6 +25,7 @@ struct ggnet_node { #define GGNET_NODENAME_WAITING -1 #define GGNET_NODENAME_FAILED -2 char name[GGNET_DNSNAME_MAX]; + void *usrdata; }; enum ggnet_connstate { @@ -42,6 +46,7 @@ struct ggnet_conn { u_int size; u_int size_response; time_t lastseen; + void *usrdata; }; struct ggnet { @@ -51,23 +56,33 @@ struct ggnet { int node_count; u_int16_t conn_freeids[GGNET_CONN_FREEIDS_COUNT]; int conn_freeids_ptr; + int manage_connid; time_t time; }; -struct ggnet *ggnet_new(void); +struct ggnet *ggnet_new(int); void ggnet_free(struct ggnet *); struct ggnet_node *ggnet_node_add(struct ggnet *, struct in_addr *); void ggnet_node_del(struct ggnet *, struct ggnet_node *); struct ggnet_node *ggnet_node_find(struct ggnet *, struct in_addr *); void ggnet_node_update_name(struct ggnet *, struct ggnet_node *, char *, int); +void *ggnet_node_usrdata_get(struct ggnet_node *); +void ggnet_node_usrdata_set(struct ggnet_node *, void *); struct ggnet_conn *ggnet_conn_add(struct ggnet *, struct in_addr *, int, - struct in_addr *, int, int, int); + struct in_addr *, int, int, int, int); void ggnet_conn_data(struct ggnet *, struct ggnet_conn *, int, int); void ggnet_conn_del(struct ggnet *, struct ggnet_conn *); struct ggnet_conn *ggnet_conn_find(struct ggnet *, struct in_addr *, int, struct in_addr *, int, int, int *); +struct ggnet_conn *ggnet_conn_find_by_id(struct ggnet *, int); +struct ggnet_conn *ggnet_conn_find_by_node(struct ggnet *, struct ggnet_node *, + struct ggnet_node *); +void *ggnet_conn_usrdata_get(struct ggnet_conn *); +void ggnet_conn_usrdata_set(struct ggnet_conn *, void *); +void *ggnet_conn_src_get(struct ggnet_conn *); +void *ggnet_conn_dst_get(struct ggnet_conn *); void ggnet_time_update(struct ggnet *, time_t); #endif /* _LIBGGNET_H_ */ |