X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fvertex.h;h=b967a2ed30763d3f96b52d1252eb3e04041dae7b;hp=b5504d5688690013f6822bedcfe0eb2845aa3af6;hb=ac066bb057dcb187bf91670793ba5e6ca456e052;hpb=49a2cd806c73cff1ab6a712a996c7f7d4e1f32c0 diff --git a/src/vertex.h b/src/vertex.h index b5504d56..b967a2ed 100644 --- a/src/vertex.h +++ b/src/vertex.h @@ -17,25 +17,46 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: vertex.h,v 1.1.2.1 2001/10/09 19:30:30 guus Exp $ + $Id: vertex.h,v 1.1.2.5 2001/10/27 12:13:17 guus Exp $ */ +#ifndef __TINC_VERTEX_H__ +#define __TINC_VERTEX_H__ + +#include + +#include "node.h" +#include "connection.h" + +/* I don't know if halfconnection_t is useful... */ + +typedef struct halfconnection_t { + struct node_t *node; /* node associated with this end of the connection */ + + ipv4_t address; /* real (internet) ip on this end of the meta connection */ + short unsigned int port; /* port number of this end of the meta connection */ + char *hostname; /* the hostname of real ip */ +} halfconnection_t; + typedef struct vertex_t { - struct halfconnection_t *from; - struct halfconnection_t *to; + struct node_t *from; + struct node_t *to; + long int options; /* options turned on for this connection */ + int metric; /* weight of this vertex */ + + struct connection_t *connection; /* connection associated with this vertex, if available */ } vertex_t; -typedef struct halfconnection_t { - struct node_t *node; +extern avl_tree_t *vertex_tree; /* Tree with all known vertices (replaces active_tree) */ - ipv4_t address; /* his real (internet) ip to send UDP packets to */ - short unsigned int port; /* port number of UDP connection */ - char *hostname; /* the hostname of its real ip */ - - RSA *rsa_key; - EVP_CIPHER_CTX *ctx; - char *metakey; - char *pktkey; - char *challenge; -} halfconnection_t; +extern void init_vertices(void); +extern void exit_vertices(void); +extern vertex_t *new_vertex(void); +extern void free_vertex(vertex_t *); +extern void vertex_add(vertex_t *); +extern void vertex_del(vertex_t *); +extern vertex_t *lookup_vertex(struct node_t *, struct node_t *); +extern void dump_vertices(void); + +#endif /* __TINC_VERTEX_H__ */