Android API rx/tx update
This commit is contained in:
@@ -794,11 +794,11 @@ err_t NetconEthernetTap::nc_recved(void *arg, struct tcp_pcb *PCB, struct pbuf *
|
||||
tot += len;
|
||||
}
|
||||
if(tot) {
|
||||
#if defined(USE_SOCKS_PROXY)
|
||||
l->tap->phyOnTcpWritable(l->conn->sock, NULL, true);
|
||||
#else
|
||||
//#if defined(USE_SOCKS_PROXY)
|
||||
// l->tap->phyOnTcpWritable(l->conn->sock, NULL, true);
|
||||
//#else
|
||||
l->tap->phyOnUnixWritable(l->conn->sock, NULL, true);
|
||||
#endif
|
||||
//#endif
|
||||
}
|
||||
l->tap->lwipstack->__pbuf_free(q);
|
||||
return ERR_OK;
|
||||
|
||||
@@ -305,6 +305,27 @@ int (*realclose)(CLOSE_SIG);
|
||||
return fcntl(fd, F_SETFL, O_NONBLOCK);
|
||||
}
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// ----------------------- Exposed RX/TX API for Java JNI -----------------------
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
// TX
|
||||
JNIEXPORT jint JNICALL Java_ZeroTier_SDK_zt_1write(JNIEnv *env, jobject thisObj, jint fd, jarray buf, jint len)
|
||||
{
|
||||
jbyte *body = (*env)->GetByteArrayElements(env, buf, 0);
|
||||
int written_bytes = write(fd, body, len);
|
||||
(*env)->ReleaseByteArrayElements(env, buf, body, 0);
|
||||
return written_bytes;
|
||||
}
|
||||
// RX
|
||||
JNIEXPORT jint JNICALL Java_ZeroTier_SDK_zt_1read(JNIEnv *env, jobject thisObj, jint fd, jarray buf, jint len)
|
||||
{
|
||||
jbyte *body = (*env)->GetByteArrayElements(env, buf, 0);
|
||||
int read_bytes = read(fd, body, len);
|
||||
(*env)->ReleaseByteArrayElements(env, buf, body, 0);
|
||||
return read_bytes;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// --------------------------------- setsockopt() -------------------------------
|
||||
|
||||
Reference in New Issue
Block a user