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
|
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:
|
copy_dynamic_lib:
|
||||||
cp ../../../$(BUILD)/$(SHARED_LIB) .
|
cp ../../../bin/lib/$(SHARED_LIB) .
|
||||||
|
|
||||||
jar:
|
jar:
|
||||||
jar cf libzt.jar libzt.dylib zerotier/ZeroTier.class
|
jar cf libzt.jar libzt.dylib zerotier/ZeroTier.class
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
### JAR file (with embedded C++ dynamic library)
|
### JAR file (with embedded C++ dynamic library)
|
||||||
|
|
||||||
```
|
```
|
||||||
make example_app
|
make example_java_app
|
||||||
|
make copy_dynamic_lib
|
||||||
make jar
|
make jar
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
/**
|
/**
|
||||||
* @file
|
* @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
|
* JNI naming convention: Java_PACKAGENAME_CLASSNAME_METHODNAME
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -200,7 +200,8 @@ namespace ZeroTier {
|
|||||||
return -1; // possibly invalid address format
|
return -1; // possibly invalid address format
|
||||||
// TODO: set errno
|
// 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(
|
JNIEXPORT jint JNICALL Java_zerotier_ZeroTier_bind(
|
||||||
@@ -213,7 +214,7 @@ namespace ZeroTier {
|
|||||||
// TODO: set errno
|
// TODO: set errno
|
||||||
}
|
}
|
||||||
//DEBUG_TEST("RESULT => %s : %d", inet_ntoa(in4->sin_addr), ntohs(in4->sin_port));
|
//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);
|
err = zts_bind(fd, (struct sockaddr*)&ss, addrlen);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -383,7 +384,7 @@ namespace ZeroTier {
|
|||||||
jint fd, jarray buf, jint len)
|
jint fd, jarray buf, jint len)
|
||||||
{
|
{
|
||||||
jbyte *body = (*env).GetByteArrayElements((_jbyteArray *)buf, 0);
|
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);
|
(*env).ReleaseByteArrayElements((_jbyteArray *)buf, body, 0);
|
||||||
return read_bytes;
|
return read_bytes;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user