Grant Limberg
4dc0ff8f13
Replace calls to Get<Type>ArrayElements with GetPrimitiveArrayCritical.
...
This puts code accessing the data in a critical section so that the GC cannot run while JNI has access to the array. This helps with stability somewhat, but I'm still getting some crashes in the GC
2015-06-09 23:12:44 -07:00
Grant Limberg
ced040c503
Logging and adding .equals() methods to MulticastGroup and VirtualNetworkCofnig
2015-06-09 19:38:05 -07:00
Grant Limberg
7cc64c5cb6
Might help to set the enabled field on a VirtualNetworkConfig object :)
2015-06-03 21:29:19 -07:00
Grant Limberg
b84dba3ecb
more logging
2015-06-03 21:29:07 -07:00
Grant Limberg
8fb9df9751
delete dead test code
2015-06-03 18:35:38 -07:00
Grant Limberg
fb0bf52b1b
Fixed sending a port number of 0 to ZT1.
...
Fixed VirtualNetworkConfigFunction (creating array to send to Java)
Fixed the creating InetAddress instead of InetSocketAddress in virtual network config callback
2015-06-01 20:03:28 -07:00
Grant Limberg
74f7d5377d
Enable ZT_TRACE and more verbose build output
2015-06-01 20:01:37 -07:00
Grant Limberg
5015c0ae78
more logging
2015-05-28 21:03:37 -07:00
Grant Limberg
b6196a53de
Fix DataStoreGetFunction.
2015-05-28 20:37:16 -07:00
Grant Limberg
58ca657da6
Use object arrays rather than ArrayList. JNI side
2015-05-28 20:36:54 -07:00
Grant Limberg
7822616966
Replace ArrayList instances with []
2015-05-28 20:01:30 -07:00
Grant Limberg
4c680e3126
LOTS more error checking and logging.
...
Running into a wall attempting to add items to an ArrayList from the JNI side
2015-05-27 20:42:54 -07:00
Grant Limberg
09631ad382
fix datastore get call in JNI
...
Just delete the local reference rather than do an array delete. Array delete was causing a crash on loading network config files. Deleting the local ref works fine, though, as it still lets the JVM garbage collecter know that the native code is done with the array
2015-05-26 21:32:56 -07:00
Grant Limberg
2d67196667
added the android verbose log level and moved most jni debug messages to verbose
2015-05-26 21:31:34 -07:00
Grant Limberg
9755dad7ff
add a missing break from a switch
2015-05-26 21:30:33 -07:00
Grant Limberg
adaf9cf32b
still getting re-used to all the places you have to put access modifiers in Java
2015-05-26 20:03:47 -07:00
Grant Limberg
6e998efd15
fixing up data store stuff
2015-05-23 18:29:16 -07:00
Grant Limberg
1e043a3f66
Remove link desperation from java API
2015-05-21 19:34:19 -07:00
Kees Bos
a425bbc673
Renamed supernode to rootserver
2015-05-06 12:05:20 +02:00
Grant Limberg
e28712555d
build & package libZeroTierOneSDK.jnilib on Mac oS
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-05-04 20:04:44 -07:00
Grant Limberg
7054c365f2
put a read timeout on the socket
2015-05-02 18:34:47 -07:00
Grant Limberg
06ab338ecc
added naive OneService implementation.
...
Does nothing but send packets to master nodes and listen for packets back.
2015-05-02 18:24:52 -07:00
Grant Limberg
ad6ec22857
DataStore now works
2015-05-02 18:22:56 -07:00
Grant Limberg
a9307693a6
Adding Data Store implementations for Android and normal Java
2015-05-02 17:32:12 -07:00
Grant Limberg
742c59a7c7
Refactor package name from com.zerotierone.sdk to com.zerotier.sdk
2015-05-02 16:54:00 -07:00
Grant Limberg
e79a6915ff
ensure java is compiled for JVM 1.7. Android cant read .class files compiled for 1.8
2015-05-02 12:06:07 -07:00
Grant Limberg
818339f966
replace old direct calls to FindClass, GetMethodID, etc with calls that use the cache
2015-05-02 12:05:40 -07:00
Grant Limberg
079d248eab
added a JniCache objectet for caching jclass, jmethodID, and jfieldID objects
2015-05-02 12:05:02 -07:00
Grant Limberg
9f2732d661
add the basedir to the ant buildfile
2015-05-02 10:16:10 -07:00
Grant Limberg
fb6b56a85f
clean up unused imports
2015-05-01 18:27:34 -07:00
Grant Limberg
02b33e3763
Yeah it helps to byte swap the port back to little-endian before sending the port off to Java
2015-04-30 22:07:14 -07:00
Grant Limberg
0a15eae00f
Setup native build for Windows Java.
...
Still need to do Mac & Linux
2015-04-30 21:50:28 -07:00
Grant Limberg
75d7137025
added a class I found to load JNI code from within JAR files on non-android platforms.
...
That doesn't come for free, unlike android.
2015-04-30 21:50:05 -07:00
Grant Limberg
9464504e4a
DataStoreGet and Put and EventListener appear to work
2015-04-29 21:20:50 -07:00
Grant Limberg
7e0cc28a89
Fixes for bugs pointed out by updating warnings
2015-04-29 19:29:35 -07:00
Grant Limberg
9bf9670ff9
add more warnings to the JNI build
2015-04-29 19:14:52 -07:00
Grant Limberg
5983b4367b
jclass pointers aren't as cacheable as originally thought.
...
There is a way to do it. We can try it later if we determine it's needed for performance reasons. Otherwise, don't use static to cache them
2015-04-27 18:38:13 -07:00
Grant Limberg
d1ed269537
Switch to InetSockAddress instead of InetAddress so we can send the port # to java as well
2015-04-27 17:48:37 -07:00
Grant Limberg
4c71e92a67
It's now possible to actually create a Node object in Java/Android!!!
2015-04-25 20:47:21 -07:00
Grant Limberg
3bdbc6390f
Added logging to Android logcat
2015-04-25 20:46:56 -07:00
Grant Limberg
8a09e0ec3c
added NodeException
2015-04-25 20:46:41 -07:00
Grant Limberg
db80070ccb
fix strings pointing to enum fields in ResultCode java class
2015-04-25 19:19:58 -07:00
Grant Limberg
042f914dc5
If we could not recursively add ZeroTierOneSDK.jar to ZeroTierOneSDK.jar, that would be greeeaaaaat
2015-04-25 19:09:30 -07:00
Grant Limberg
a86a0ab2b1
Package the Android native libraries right in the .jar file
2015-04-25 18:59:00 -07:00
Grant Limberg
29bb2a9004
fix for a previously renamed class
2015-04-25 18:58:43 -07:00
Grant Limberg
56f8160af8
generate javadocs for the Java SDK
2015-04-25 17:29:07 -07:00
Grant Limberg
0d4283a3fa
Cache jclass and jmethod instances for callbacks on the JniRef struct.
...
This is safe to cache as none of the instantiated callback interfaces can be changed once a Node object is created.
2015-04-24 20:34:36 -07:00
Grant Limberg
9c62ce9e6f
implemented EventCallback
...
All callback methods are now implemented
2015-04-24 20:13:21 -07:00
Grant Limberg
f2eed5a65f
implemented WirePacketSendFunction
2015-04-24 19:43:17 -07:00
Grant Limberg
5e1fb4e253
Realized that the jclass and jmethodID variables in the callbacks cannot be static
...
There's no guarantee that ALL calls to the callbacks will be on the same class as they're just interfaces and user defined
2015-04-24 19:35:18 -07:00
Grant Limberg
dc00ce4f44
added DataStorePutFunction implementation
...
updated DataStorePutListener to also have an onDelete() method
2015-04-24 19:28:44 -07:00
Grant Limberg
53ebd5a9a5
don't need to pass buffer size because java arrays have a .length member
2015-04-24 19:14:59 -07:00
Grant Limberg
d5fc2b39aa
implemented DataStoreGetFunction callback
2015-04-24 19:11:49 -07:00
Grant Limberg
4137246653
implemented VirtualNetworkFrameFunctionCallback
2015-04-24 18:49:52 -07:00
Grant Limberg
28168fa673
implement VirtualNetworkConfigFunctionCallback
2015-04-24 18:39:17 -07:00
Grant Limberg
99af0f3a88
moved creation of VirtualNetworkConfig objects to ZT1_jniutils
...
added implementation of networks() method
2015-04-24 18:20:10 -07:00
Grant Limberg
6f07a476a6
create and return the peer array
2015-04-24 18:06:26 -07:00
Grant Limberg
52a20b4b0f
create PeerRole and PeerPhysicalPath objects
2015-04-24 17:58:59 -07:00
Grant Limberg
f3c29d3f0d
rename PhysicalPeerPath -> PeerPhysicalPath to reflect C API
2015-04-24 17:58:31 -07:00
Grant Limberg
b3429481cd
update build instructions
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-24 17:04:08 -07:00
Grant Limberg
1a65a79e57
set 'build' as the default ant target
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 23:14:09 -07:00
Grant Limberg
6dd3c07b25
removing unneeded jni headers
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 23:09:42 -07:00
Grant Limberg
1df6bc6bc3
just adjusting some alignment
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 23:09:30 -07:00
Grant Limberg
9ab7280703
added infrastructure for Node.peers() and Node.networks() functions
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 23:08:28 -07:00
Grant Limberg
7f6556eba0
node.networkConfig() now creates ArrayLists of multicast subscriptions and assigned addresses
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 22:48:56 -07:00
Grant Limberg
1bea940323
fix field ID signatures
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 22:47:56 -07:00
Grant Limberg
6ff2e6ecfe
move findNode method back
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 22:46:54 -07:00
Grant Limberg
d66f2cd54d
Node.networkConfig now only needs to populate the lists of assigned addresses and multicast subscriptions and then it's finished
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 21:43:16 -07:00
Grant Limberg
46adf870a1
move utility functions from anon namespace to ZT1_jniutils
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 21:39:07 -07:00
Grant Limberg
4906f8e848
added stub utility functions for creating ArrayLists, appending items to ArrayLists, creating InetAddress objects, and MulticastGroup objects
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 21:36:33 -07:00
Grant Limberg
fa9d42b7e5
finished the JNI implementation of the status() method on Node
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 20:52:47 -07:00
Grant Limberg
1a528aec76
don't require clean before build
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 20:34:59 -07:00
Grant Limberg
ffb9e2901e
fix a build error
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 20:29:23 -07:00
Grant Limberg
407e2fc7de
Added ant build script. Requires NDK_BUILD_LOC environment variable pointing to the ndk-build script
...
fixed compile erros in Node and VirutalNetworkConfig
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 20:17:29 -07:00
Grant Limberg
667a103a6a
added functions to create Event, and VirtualNetworkStatus objects
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-23 19:16:45 -07:00
Grant Limberg
32a35e6808
scaffolding for implementation of status() and networkConfig()
...
They should be able to be called, but will not return valid objects yet
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 21:31:17 -07:00
Grant Limberg
34028aa7c8
Added implemenation for node.address()
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 21:30:37 -07:00
Grant Limberg
3ccaef88b7
Added implementation for Node.version()
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 21:29:45 -07:00
Grant Limberg
f5bb57d5aa
fix call to networkConfig to pass the network id
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 21:28:42 -07:00
Grant Limberg
a1a35e0279
Can't instantiate enum objects. Fix createResultObject() function so that it still works properly
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 21:14:55 -07:00
Grant Limberg
1308f02b93
multicastSubscribe() and multicastUnsubscribe()
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 20:33:38 -07:00
Grant Limberg
b078d69372
join() and leave() functions
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 20:29:34 -07:00
Grant Limberg
e31e54483c
added processBackgroundTasks function
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 20:25:35 -07:00
Grant Limberg
3c499777c8
added implementation for processWirePacket
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 20:21:12 -07:00
Grant Limberg
9c038d3ecd
added a few missing function calls in the ZT1 Node API
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 19:36:46 -07:00
Grant Limberg
6187a91f4c
delete the ZT1_Node object when calling Java_com_zerotierone_sdk_Node_node_1delete
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 19:29:45 -07:00
Grant Limberg
321b67c73c
add a findNode() function to reduce copypasta
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 19:29:13 -07:00
Grant Limberg
5df253fa69
added implementation for processVirtualNetworkFrame
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 19:19:45 -07:00
Grant Limberg
3a6807d584
add assignedAddresses member to VirtualNetworConfig class
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 19:19:08 -07:00
Grant Limberg
787b4a8e50
* Change a few method signatures from java.lang.Long to long[] so that values can be passed back.
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-22 19:18:49 -07:00
Grant Limberg
0c8051da15
Move JNI methods to the bottom of the class
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-20 20:44:31 -07:00
Grant Limberg
e0c8ddb65b
call close() from the Node class's finalize method
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-20 20:36:59 -07:00
Grant Limberg
bd4049fdc0
Added JNI code for construction/destruction of ZT1_Node objects
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-20 20:33:42 -07:00
Grant Limberg
5f314f209e
Updated Java Node class native methods to pass the node ID
...
This is so that we know which C-based ZT1_Node struct is being operated on
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-20 20:32:29 -07:00
Grant Limberg
99a1a4e65b
Generated header files for JNI
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-20 18:31:42 -07:00
Grant Limberg
ec3a1c87d1
first revision of the java API for ZeroTier One
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-20 18:27:15 -07:00
Grant Limberg
f40eb665c5
Add build files for compiling ZeroTier One SDK for Android targets
...
Signed-off-by: Grant Limberg <glimberg@gmail.com>
2015-04-20 18:26:23 -07:00