summaryrefslogtreecommitdiff
path: root/java/src/com/zerotier
diff options
context:
space:
mode:
authorGrant Limberg <grant.limberg@zerotier.com>2017-03-29 13:29:02 -0700
committerGrant Limberg <grant.limberg@zerotier.com>2017-03-29 13:29:02 -0700
commit5f611dad51f8244b59a63ecdf48a2126c5995d74 (patch)
tree957c32101f1398b0a9a2507d9860a140bd614a3e /java/src/com/zerotier
parent1c5fdb8a0a20654cdec57347647034357e0f92a4 (diff)
downloadinfinitytier-5f611dad51f8244b59a63ecdf48a2126c5995d74.tar.gz
infinitytier-5f611dad51f8244b59a63ecdf48a2126c5995d74.zip
added orbit/deorbit methods to java Node implementation
Diffstat (limited to 'java/src/com/zerotier')
-rw-r--r--java/src/com/zerotier/sdk/Node.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/java/src/com/zerotier/sdk/Node.java b/java/src/com/zerotier/sdk/Node.java
index 7b111f74..8e7d44e7 100644
--- a/java/src/com/zerotier/sdk/Node.java
+++ b/java/src/com/zerotier/sdk/Node.java
@@ -89,6 +89,7 @@ public class Node {
* @param eventListener User written instance of the {@link EventListener} interface to receive status updates and non-fatal error notices. This instance must be unique per Node object.
* @param frameListener
* @param configListener User written instance of the {@link VirtualNetworkConfigListener} interface to be called when virtual LANs are created, deleted, or their config parameters change. This instance must be unique per Node object.
+ * @param pathChecker User written instance of the {@link PathChecker} interface. Not required and can be null.
*/
public Node(long now,
DataStoreGetListener getListener,
@@ -322,6 +323,34 @@ public class Node {
}
/**
+ * Add or update a moon
+ *
+ * Moons are persisted in the data store in moons.d/, so this can persist
+ * across invocations if the contents of moon.d are scanned and orbit is
+ * called for each on startup.
+ *
+ * @param moonWorldId Moon's world ID
+ * @param moonSeed If non-zero, the ZeroTier address of any member of the moon to query for moon definition
+ * @return Error if moon was invalid or failed to be added
+ */
+ public ResultCode orbit(
+ long moonWorldId,
+ long moonSeed) {
+ return orbit(nodeId, moonWorldId, moonSeed);
+ }
+
+ /**
+ * Remove a moon (does nothing if not present)
+ *
+ * @param moonWorldId World ID of moon to remove
+ * @return Error if anything bad happened
+ */
+ public ResultCode deorbit(
+ long moonWorldId) {
+ return deorbit(nodeId, moonWorldId);
+ }
+
+ /**
* Get this node's 40-bit ZeroTier address
*
* @return ZeroTier address (least significant 40 bits of 64-bit int)
@@ -423,6 +452,15 @@ public class Node {
long multicastGroup,
long multicastAdi);
+ private native ResultCode orbit(
+ long nodeId,
+ long moonWorldId,
+ long moonSeed);
+
+ private native ResultCode deorbit(
+ long nodeId,
+ long moonWorldId);
+
private native long address(long nodeId);
private native NodeStatus status(long nodeId);