mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-06 20:43:44 +02:00
added infrastructure for Node.peers() and Node.networks() functions
Signed-off-by: Grant Limberg <glimberg@gmail.com>
This commit is contained in:
parent
7f6556eba0
commit
9ab7280703
6 changed files with 227 additions and 7 deletions
|
@ -1043,6 +1043,28 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||||
return versionObj;
|
return versionObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: com_zerotierone_sdk_Node
|
||||||
|
* Method: peers
|
||||||
|
* Signature: (J)Ljava/util/ArrayList;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_peers(
|
||||||
|
JNIEnv *env, jobject obj, jlong id)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: com_zerotierone_sdk_Node
|
||||||
|
* Method: networks
|
||||||
|
* Signature: (J)Ljava/util/ArrayList;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networks(
|
||||||
|
JNIEnv *env, jobject obj, jlong id)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
#endif
|
#endif
|
|
@ -106,11 +106,27 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networkConfig
|
||||||
/*
|
/*
|
||||||
* Class: com_zerotierone_sdk_Node
|
* Class: com_zerotierone_sdk_Node
|
||||||
* Method: version
|
* Method: version
|
||||||
* Signature: (J)Lcom/zerotierone/sdk/Version;
|
* Signature: ()Lcom/zerotierone/sdk/Version;
|
||||||
*/
|
*/
|
||||||
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||||
(JNIEnv *, jobject);
|
(JNIEnv *, jobject);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: com_zerotierone_sdk_Node
|
||||||
|
* Method: peers
|
||||||
|
* Signature: (J)Ljava/util/ArrayList;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_peers
|
||||||
|
(JNIEnv *, jobject, jlong);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: com_zerotierone_sdk_Node
|
||||||
|
* Method: networks
|
||||||
|
* Signature: (J)Ljava/util/ArrayList;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networks
|
||||||
|
(JNIEnv *, jobject, jlong);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -30,6 +30,7 @@ package com.zerotierone.sdk;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.lang.Long;
|
import java.lang.Long;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Node {
|
public class Node {
|
||||||
static {
|
static {
|
||||||
|
@ -157,13 +158,17 @@ public class Node {
|
||||||
return status(nodeId);
|
return status(nodeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: ZT1_Node_peers
|
public ArrayList<Peer> peers() {
|
||||||
|
return peers(nodeId);
|
||||||
|
}
|
||||||
|
|
||||||
public VirtualNetworkConfig networkConfig(long nwid) {
|
public VirtualNetworkConfig networkConfig(long nwid) {
|
||||||
return networkConfig(nodeId, nwid);
|
return networkConfig(nodeId, nwid);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: ZT1_Node_networks
|
public ArrayList<VirtualNetworkConfig> networks() {
|
||||||
|
return networks(nodeId);
|
||||||
|
}
|
||||||
|
|
||||||
public Version getVersion() {
|
public Version getVersion() {
|
||||||
return version();
|
return version();
|
||||||
|
@ -220,13 +225,11 @@ public class Node {
|
||||||
|
|
||||||
private native NodeStatus status(long nodeId);
|
private native NodeStatus status(long nodeId);
|
||||||
|
|
||||||
// TODO: ZT1_Node_peers
|
|
||||||
|
|
||||||
private native VirtualNetworkConfig networkConfig(long nodeId, long nwid);
|
private native VirtualNetworkConfig networkConfig(long nodeId, long nwid);
|
||||||
|
|
||||||
// TODO: ZT1_Node_networks
|
|
||||||
|
|
||||||
private native Version version();
|
private native Version version();
|
||||||
|
|
||||||
|
private native ArrayList<Peer> peers(long nodeId);
|
||||||
|
|
||||||
|
private native ArrayList<VirtualNetworkConfig> networks(long nodeId);
|
||||||
}
|
}
|
80
java/src/com/zerotierone/sdk/Peer.java
Normal file
80
java/src/com/zerotierone/sdk/Peer.java
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
/*
|
||||||
|
* ZeroTier One - Network Virtualization Everywhere
|
||||||
|
* Copyright (C) 2011-2015 ZeroTier, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* --
|
||||||
|
*
|
||||||
|
* ZeroTier may be used and distributed under the terms of the GPLv3, which
|
||||||
|
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
|
||||||
|
*
|
||||||
|
* If you would like to embed ZeroTier into a commercial application or
|
||||||
|
* redistribute it in a modified binary form, please contact ZeroTier Networks
|
||||||
|
* LLC. Start here: http://www.zerotier.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.zerotierone.sdk;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Peer {
|
||||||
|
private long address;
|
||||||
|
private long lastUnicastFrame;
|
||||||
|
private long lastMulticastFrame;
|
||||||
|
private int versionMajor;
|
||||||
|
private int versionMinor;
|
||||||
|
private int versionRev;
|
||||||
|
private int latency;
|
||||||
|
private PeerRole role;
|
||||||
|
private ArrayList<PhysicalPeerPath> paths;
|
||||||
|
|
||||||
|
private Peer() {}
|
||||||
|
|
||||||
|
public final long address() {
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final long lastUnicastFrame() {
|
||||||
|
return lastUnicastFrame;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final long lastMulticastFrame() {
|
||||||
|
return lastMulticastFrame;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final int versionMajor() {
|
||||||
|
return versionMajor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final int versionMinor() {
|
||||||
|
return versionMinor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final int versionRev() {
|
||||||
|
return versionRev;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final int latency() {
|
||||||
|
return latency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final PeerRole role() {
|
||||||
|
return role;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final ArrayList<PhysicalPeerPath> paths() {
|
||||||
|
return paths;
|
||||||
|
}
|
||||||
|
}
|
34
java/src/com/zerotierone/sdk/PeerRole.java
Normal file
34
java/src/com/zerotierone/sdk/PeerRole.java
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* ZeroTier One - Network Virtualization Everywhere
|
||||||
|
* Copyright (C) 2011-2015 ZeroTier, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* --
|
||||||
|
*
|
||||||
|
* ZeroTier may be used and distributed under the terms of the GPLv3, which
|
||||||
|
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
|
||||||
|
*
|
||||||
|
* If you would like to embed ZeroTier into a commercial application or
|
||||||
|
* redistribute it in a modified binary form, please contact ZeroTier Networks
|
||||||
|
* LLC. Start here: http://www.zerotier.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.zerotierone.sdk;
|
||||||
|
|
||||||
|
public enum PeerRole {
|
||||||
|
PEER_ROLE_LEAF,
|
||||||
|
PEER_ROLE_HUB,
|
||||||
|
PEER_ROLE_SUPERNODE
|
||||||
|
}
|
65
java/src/com/zerotierone/sdk/PhysicalPeerPath.java
Normal file
65
java/src/com/zerotierone/sdk/PhysicalPeerPath.java
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* ZeroTier One - Network Virtualization Everywhere
|
||||||
|
* Copyright (C) 2011-2015 ZeroTier, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* --
|
||||||
|
*
|
||||||
|
* ZeroTier may be used and distributed under the terms of the GPLv3, which
|
||||||
|
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
|
||||||
|
*
|
||||||
|
* If you would like to embed ZeroTier into a commercial application or
|
||||||
|
* redistribute it in a modified binary form, please contact ZeroTier Networks
|
||||||
|
* LLC. Start here: http://www.zerotier.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.zerotierone.sdk;
|
||||||
|
|
||||||
|
import java.net.InetAddress;
|
||||||
|
|
||||||
|
public class PhysicalPeerPath {
|
||||||
|
private InetAddress address;
|
||||||
|
private long lastSend;
|
||||||
|
private long lastReceive;
|
||||||
|
private boolean fixed;
|
||||||
|
private boolean active;
|
||||||
|
private boolean preferred;
|
||||||
|
|
||||||
|
private PhysicalPeerPath() {}
|
||||||
|
|
||||||
|
public final InetAddress address() {
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final long lastSend() {
|
||||||
|
return lastSend;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final long lastReceive() {
|
||||||
|
return lastReceive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final boolean isFixed() {
|
||||||
|
return fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final boolean isActive() {
|
||||||
|
return active;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final boolean isPreferred() {
|
||||||
|
return preferred;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue