mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-22 06:17:48 +00:00
More plumbing of cluster status.
This commit is contained in:
parent
865acfa40f
commit
5ff7733f84
@ -1516,6 +1516,17 @@ void ZT_Node_clusterRemoveMember(ZT_Node *node,unsigned int memberId);
|
|||||||
*/
|
*/
|
||||||
void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned int len);
|
void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned int len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current status of the cluster from this node's point of view
|
||||||
|
*
|
||||||
|
* Calling this without clusterInit() or without cluster support will just
|
||||||
|
* zero out the structure and show a cluster size of zero.
|
||||||
|
*
|
||||||
|
* @param node Node instance
|
||||||
|
* @param cs Cluster status structure to fill with data
|
||||||
|
*/
|
||||||
|
void ZT_Node_clusterStatus(ZT_Node *node,ZT_ClusterStatus *cs);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get ZeroTier One version
|
* Get ZeroTier One version
|
||||||
*
|
*
|
||||||
|
@ -636,6 +636,18 @@ void Node::clusterHandleIncomingMessage(const void *msg,unsigned int len)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Node::clusterStatus(ZT_ClusterStatus *cs)
|
||||||
|
{
|
||||||
|
if (!cs)
|
||||||
|
return;
|
||||||
|
#ifdef ZT_ENABLE_CLUSTER
|
||||||
|
if (RR->cluster)
|
||||||
|
RR->cluster->status(*cs);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
memset(cs,0,sizeof(ZT_ClusterStatus));
|
||||||
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
/* Node methods used only within node/ */
|
/* Node methods used only within node/ */
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
@ -947,15 +959,6 @@ enum ZT_ResultCode ZT_Node_clusterInit(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a member to this cluster
|
|
||||||
*
|
|
||||||
* Calling this without having called clusterInit() will do nothing.
|
|
||||||
*
|
|
||||||
* @param node Node instance
|
|
||||||
* @param memberId Member ID (must be less than or equal to ZT_CLUSTER_MAX_MEMBERS)
|
|
||||||
* @return OK or error if clustering is disabled, ID invalid, etc.
|
|
||||||
*/
|
|
||||||
enum ZT_ResultCode ZT_Node_clusterAddMember(ZT_Node *node,unsigned int memberId)
|
enum ZT_ResultCode ZT_Node_clusterAddMember(ZT_Node *node,unsigned int memberId)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@ -965,14 +968,6 @@ enum ZT_ResultCode ZT_Node_clusterAddMember(ZT_Node *node,unsigned int memberId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove a member from this cluster
|
|
||||||
*
|
|
||||||
* Calling this without having called clusterInit() will do nothing.
|
|
||||||
*
|
|
||||||
* @param node Node instance
|
|
||||||
* @param memberId Member ID to remove (nothing happens if not present)
|
|
||||||
*/
|
|
||||||
void ZT_Node_clusterRemoveMember(ZT_Node *node,unsigned int memberId)
|
void ZT_Node_clusterRemoveMember(ZT_Node *node,unsigned int memberId)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@ -980,18 +975,6 @@ void ZT_Node_clusterRemoveMember(ZT_Node *node,unsigned int memberId)
|
|||||||
} catch ( ... ) {}
|
} catch ( ... ) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle an incoming cluster state message
|
|
||||||
*
|
|
||||||
* The message itself contains cluster member IDs, and invalid or badly
|
|
||||||
* addressed messages will be silently discarded.
|
|
||||||
*
|
|
||||||
* Calling this without having called clusterInit() will do nothing.
|
|
||||||
*
|
|
||||||
* @param node Node instance
|
|
||||||
* @param msg Cluster message
|
|
||||||
* @param len Length of cluster message
|
|
||||||
*/
|
|
||||||
void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned int len)
|
void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned int len)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@ -999,6 +982,13 @@ void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned
|
|||||||
} catch ( ... ) {}
|
} catch ( ... ) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ZT_Node_clusterStatus(ZT_Node *node,ZT_ClusterStatus *cs)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
reinterpret_cast<ZeroTier::Node *>(node)->clusterStatus(cs);
|
||||||
|
} catch ( ... ) {}
|
||||||
|
}
|
||||||
|
|
||||||
void ZT_version(int *major,int *minor,int *revision,unsigned long *featureFlags)
|
void ZT_version(int *major,int *minor,int *revision,unsigned long *featureFlags)
|
||||||
{
|
{
|
||||||
if (major) *major = ZEROTIER_ONE_VERSION_MAJOR;
|
if (major) *major = ZEROTIER_ONE_VERSION_MAJOR;
|
||||||
|
@ -124,6 +124,7 @@ public:
|
|||||||
ZT_ResultCode clusterAddMember(unsigned int memberId);
|
ZT_ResultCode clusterAddMember(unsigned int memberId);
|
||||||
void clusterRemoveMember(unsigned int memberId);
|
void clusterRemoveMember(unsigned int memberId);
|
||||||
void clusterHandleIncomingMessage(const void *msg,unsigned int len);
|
void clusterHandleIncomingMessage(const void *msg,unsigned int len);
|
||||||
|
void clusterStatus(ZT_ClusterStatus *cs);
|
||||||
|
|
||||||
// Internal functions ------------------------------------------------------
|
// Internal functions ------------------------------------------------------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user