Bug fixes for JNI layer
This commit is contained in:
@@ -15,7 +15,7 @@ example_java_app_1.6:
|
||||
javac -source 1.6 -bootclasspath /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/jre/lib/rt.jar -target 1.6 *.java
|
||||
|
||||
copy_dynamic_lib:
|
||||
cp ../../../$(BUILD)/$(SHARED_LIB) .
|
||||
cp ../../../bin/lib/$(SHARED_LIB) .
|
||||
|
||||
jar:
|
||||
jar cf libzt.jar libzt.dylib zerotier/ZeroTier.class
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
### JAR file (with embedded C++ dynamic library)
|
||||
|
||||
```
|
||||
make example_app
|
||||
make example_java_app
|
||||
make copy_dynamic_lib
|
||||
make jar
|
||||
```
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* Javs JNI wrapper for partially-POSIX-compliant socket API
|
||||
* Javs JNI wrapper for POSIX-like socket API
|
||||
* JNI naming convention: Java_PACKAGENAME_CLASSNAME_METHODNAME
|
||||
*/
|
||||
|
||||
@@ -200,7 +200,8 @@ namespace ZeroTier {
|
||||
return -1; // possibly invalid address format
|
||||
// TODO: set errno
|
||||
}
|
||||
return zts_connect(fd, (struct sockaddr *)&ss, sizeof(struct sockaddr_storage));
|
||||
socklen_t addrlen = ss.ss_family == AF_INET ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6);
|
||||
return zts_connect(fd, (struct sockaddr *)&ss, addrlen);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL Java_zerotier_ZeroTier_bind(
|
||||
@@ -213,7 +214,7 @@ namespace ZeroTier {
|
||||
// TODO: set errno
|
||||
}
|
||||
//DEBUG_TEST("RESULT => %s : %d", inet_ntoa(in4->sin_addr), ntohs(in4->sin_port));
|
||||
socklen_t addrlen = ss.ss_family == AF_INET ? 4 : 16;
|
||||
socklen_t addrlen = ss.ss_family == AF_INET ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6);
|
||||
err = zts_bind(fd, (struct sockaddr*)&ss, addrlen);
|
||||
return err;
|
||||
}
|
||||
@@ -383,7 +384,7 @@ namespace ZeroTier {
|
||||
jint fd, jarray buf, jint len)
|
||||
{
|
||||
jbyte *body = (*env).GetByteArrayElements((_jbyteArray *)buf, 0);
|
||||
int read_bytes = read(fd, body, len);
|
||||
int read_bytes = zts_read(fd, body, len);
|
||||
(*env).ReleaseByteArrayElements((_jbyteArray *)buf, body, 0);
|
||||
return read_bytes;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user