]> git.meshlink.io Git - meshlink/blobdiff - src/node.h
Merge branch 'channels'
[meshlink] / src / node.h
index f393089527c310303fb491ea463141ad499790ef..5761e4d747e5544c2d5189fdaed074eaa597ac12 100644 (file)
     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef __TINC_NODE_H__
-#define __TINC_NODE_H__
+#ifndef __MESHLINK_NODE_H__
+#define __MESHLINK_NODE_H__
 
 #include "event.h"
 #include "sockaddr.h"
 #include "sptps.h"
+#include "utcp/utcp.h"
 
 typedef struct node_status_t {
        unsigned int unused_active:1;           /* 1 if active (not used for nodes) */
@@ -40,7 +41,10 @@ typedef struct node_status_t {
 
 typedef struct node_t {
        char *name;                             /* name of this node */
+       void *priv;
+
        uint32_t options;                       /* options turned on for this node */
+       dev_class_t devclass;
 
        struct meshlink_handle *mesh;           /* The mesh this node belongs to */
 
@@ -66,6 +70,8 @@ typedef struct node_t {
        struct splay_tree_t *edge_tree;                /* Edges with this node as one of the endpoints */
 
        struct connection_t *connection;        /* Connection associated with this node (if a direct connection exists) */
+       time_t last_connect_try;
+       time_t last_successfull_connection;
 
        uint32_t sent_seqno;                    /* Sequence number last sent to this node */
        uint32_t received_seqno;                /* Sequence number last received from this node */
@@ -85,6 +91,8 @@ typedef struct node_t {
        float bandwidth;                        /* Last measured bandwidth */
        float packetloss;                       /* Last measured packet loss rate */
 
+       struct utcp *utcp;
+
        uint64_t in_packets;
        uint64_t in_bytes;
        uint64_t out_packets;
@@ -97,8 +105,8 @@ extern node_t *new_node(void) __attribute__ ((__malloc__));
 extern void free_node(node_t *);
 extern void node_add(struct meshlink_handle *mesh, node_t *);
 extern void node_del(struct meshlink_handle *mesh, node_t *);
-extern node_t *lookup_node(struct meshlink_handle *mesh, char *);
+extern node_t *lookup_node(struct meshlink_handle *mesh, const char *);
 extern node_t *lookup_node_udp(struct meshlink_handle *mesh, const sockaddr_t *);
 extern void update_node_udp(struct meshlink_handle *mesh, node_t *, const sockaddr_t *);
 
-#endif /* __TINC_NODE_H__ */
+#endif /* __MESHLINK_NODE_H__ */