X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnode.h;h=acbf2e8bfec4b866458fdc4e94d5959952065bc1;hb=ed1f31db1e8840ffd6849b48bcad93e9975a24bb;hp=afcd43eace12e7e59c900d0914ac5337edb69dc1;hpb=0bdce44687a22c8825695cba185b845f5ea5e060;p=meshlink diff --git a/src/node.h b/src/node.h index afcd43ea..acbf2e8b 100644 --- a/src/node.h +++ b/src/node.h @@ -24,6 +24,7 @@ #include "sockaddr.h" #include "sptps.h" #include "utcp/utcp.h" +#include "submesh.h" typedef struct node_status_t { unsigned int unused_active: 1; /* 1 if active (not used for nodes) */ @@ -35,8 +36,10 @@ typedef struct node_status_t { unsigned int unused_sptps: 1; /* 1 if this node supports SPTPS */ unsigned int udp_confirmed: 1; /* 1 if the address is one that we received UDP traffic on */ unsigned int broadcast: 1; /* 1 if the next UDP packet should be broadcast to the local network */ - unsigned int blacklisted: 1; /* 1 if the node is blacklist so we never want to speak with him anymore*/ - unsigned int unused: 22; + unsigned int blacklisted: 1; /* 1 if the node is blacklist so we never want to speak with him anymore */ + unsigned int destroyed: 1; /* 1 if the node is being destroyed, deallocate channels when any callback is triggered */ + unsigned int duplicate: 1; /* 1 if the node is duplicate, ie. multiple nodes using the same Name are online */ + unsigned int unused: 20; } node_status_t; typedef struct node_t { @@ -47,10 +50,10 @@ typedef struct node_t { dev_class_t devclass; struct meshlink_handle *mesh; /* The mesh this node belongs to */ + struct submesh_t *submesh; /* Nodes Sub-Mesh Handle*/ int sock; /* Socket to use for outgoing UDP packets */ sockaddr_t address; /* his real (internet) ip to send UDP packets to */ - char *hostname; /* the hostname of its real ip */ node_status_t status; time_t last_state_change;