Move initAddress to LinuxSocket JNI
Motivation: we should move the initAddress to LinuxSocket JNI as it is only used there Modifications: - cleanup - move initAddress to linux socket JNI Result: it's cleaner
This commit is contained in:
parent
66ff2a2e23
commit
59f77c24b9
@ -102,6 +102,19 @@ static void netty_io_uring_linuxsocket_setInterface(JNIEnv* env, jclass clazz, j
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static jint netty_io_uring_initAddress(JNIEnv* env, jclass clazz, jint fd, jboolean ipv6, jbyteArray address, jint scopeId, jint port, jlong addressMemory) {
|
||||||
|
struct sockaddr_storage addr;
|
||||||
|
socklen_t addrSize;
|
||||||
|
if (netty_unix_socket_initSockaddr(env, ipv6, address, scopeId, port, &addr, &addrSize) == -1) {
|
||||||
|
// A runtime exception was thrown
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy((void *) addressMemory, &addr, sizeof(struct sockaddr_storage));
|
||||||
|
|
||||||
|
return addrSize;
|
||||||
|
}
|
||||||
|
|
||||||
static void netty_io_uring_linuxsocket_setTcpCork(JNIEnv* env, jclass clazz, jint fd, jint optval) {
|
static void netty_io_uring_linuxsocket_setTcpCork(JNIEnv* env, jclass clazz, jint fd, jint optval) {
|
||||||
netty_unix_socket_setOption(env, fd, IPPROTO_TCP, TCP_CORK, &optval, sizeof(optval));
|
netty_unix_socket_setOption(env, fd, IPPROTO_TCP, TCP_CORK, &optval, sizeof(optval));
|
||||||
}
|
}
|
||||||
@ -700,7 +713,8 @@ static const JNINativeMethod fixed_method_table[] = {
|
|||||||
{ "joinGroup", "(IZ[B[BII)V", (void *) netty_io_uring_linuxsocket_joinGroup },
|
{ "joinGroup", "(IZ[B[BII)V", (void *) netty_io_uring_linuxsocket_joinGroup },
|
||||||
{ "joinSsmGroup", "(IZ[B[BII[B)V", (void *) netty_io_uring_linuxsocket_joinSsmGroup },
|
{ "joinSsmGroup", "(IZ[B[BII[B)V", (void *) netty_io_uring_linuxsocket_joinSsmGroup },
|
||||||
{ "leaveGroup", "(IZ[B[BII)V", (void *) netty_io_uring_linuxsocket_leaveGroup },
|
{ "leaveGroup", "(IZ[B[BII)V", (void *) netty_io_uring_linuxsocket_leaveGroup },
|
||||||
{ "leaveSsmGroup", "(IZ[B[BII[B)V", (void *) netty_io_uring_linuxsocket_leaveSsmGroup }
|
{ "leaveSsmGroup", "(IZ[B[BII[B)V", (void *) netty_io_uring_linuxsocket_leaveSsmGroup },
|
||||||
|
{"initAddress", "(IZ[BIIJ)I", (void *) netty_io_uring_initAddress }
|
||||||
// "sendFile" has a dynamic signature
|
// "sendFile" has a dynamic signature
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -212,40 +212,6 @@ static void netty_io_uring_eventFdRead(JNIEnv* env, jclass clazz, jint fd) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static jint netty_io_uring_initAddress(JNIEnv* env, jclass clazz, jint fd, jboolean ipv6, jbyteArray address, jint scopeId, jint port, jlong remoteMemoryAddress) {
|
|
||||||
struct sockaddr_storage addr;
|
|
||||||
socklen_t addrSize;
|
|
||||||
if (netty_unix_socket_initSockaddr(env, ipv6, address, scopeId, port, &addr, &addrSize) == -1) {
|
|
||||||
// A runtime exception was thrown
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy((void *) remoteMemoryAddress, &addr, sizeof(struct sockaddr_storage));
|
|
||||||
|
|
||||||
return addrSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
//static jint netty_unix_socket_connect(JNIEnv* env, jclass clazz, jint fd, jboolean ipv6, jbyteArray address, jint scopeId, jint port) {
|
|
||||||
// struct sockaddr_storage addr;
|
|
||||||
// socklen_t addrSize;
|
|
||||||
// if (netty_unix_socket_initSockaddr(env, ipv6, address, scopeId, port, &addr, &addrSize) == -1) {
|
|
||||||
// // A runtime exception was thrown
|
|
||||||
// return -1;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// int res;
|
|
||||||
// int err;
|
|
||||||
// do {
|
|
||||||
// res = connect(fd, (struct sockaddr*) &addr, addrSize);
|
|
||||||
// } while (res == -1 && ((err = errno) == EINTR));
|
|
||||||
//
|
|
||||||
// if (res < 0) {
|
|
||||||
// return -err;
|
|
||||||
// }
|
|
||||||
// return 0;
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
static void netty_io_uring_eventFdWrite(JNIEnv* env, jclass clazz, jint fd, jlong value) {
|
static void netty_io_uring_eventFdWrite(JNIEnv* env, jclass clazz, jint fd, jlong value) {
|
||||||
uint64_t val;
|
uint64_t val;
|
||||||
|
|
||||||
@ -442,8 +408,7 @@ static const JNINativeMethod method_table[] = {
|
|||||||
{"eventFdWrite", "(IJ)V", (void *) netty_io_uring_eventFdWrite },
|
{"eventFdWrite", "(IJ)V", (void *) netty_io_uring_eventFdWrite },
|
||||||
{"eventFdRead", "(I)V", (void *) netty_io_uring_eventFdRead },
|
{"eventFdRead", "(I)V", (void *) netty_io_uring_eventFdRead },
|
||||||
{"ioUringRegisterEventFd", "(II)I", (void *) netty_io_uring_register_event_fd},
|
{"ioUringRegisterEventFd", "(II)I", (void *) netty_io_uring_register_event_fd},
|
||||||
{"ioUringUnregisterEventFd", "(I)I", (void *) netty_io_uring_unregister_event_fd},
|
{"ioUringUnregisterEventFd", "(I)I", (void *) netty_io_uring_unregister_event_fd}
|
||||||
{"initAddress", "(IZ[BIIJ)I", (void *) netty_io_uring_initAddress }
|
|
||||||
};
|
};
|
||||||
static const jint method_table_size =
|
static const jint method_table_size =
|
||||||
sizeof(method_table) / sizeof(method_table[0]);
|
sizeof(method_table) / sizeof(method_table[0]);
|
||||||
|
@ -67,8 +67,8 @@ final class LinuxSocket extends Socket {
|
|||||||
setInterface(intValue(), ipv6, nativeAddress.address(), nativeAddress.scopeId(), interfaceIndex(netInterface));
|
setInterface(intValue(), ipv6, nativeAddress.address(), nativeAddress.scopeId(), interfaceIndex(netInterface));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int initAddress(byte[] address, int scopeId, int port, long remoteAddressMemoryAddress) {
|
public int initAddress(byte[] address, int scopeId, int port, long addressMemory) {
|
||||||
return Native.initAddress(intValue(), ipv6, address, scopeId, port, remoteAddressMemoryAddress);
|
return initAddress(intValue(), ipv6, address, scopeId, port, addressMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
InetAddress getInterface() throws IOException {
|
InetAddress getInterface() throws IOException {
|
||||||
@ -387,4 +387,5 @@ final class LinuxSocket extends Socket {
|
|||||||
private static native int getIpMulticastLoop(int fd, boolean ipv6) throws IOException;
|
private static native int getIpMulticastLoop(int fd, boolean ipv6) throws IOException;
|
||||||
private static native void setIpMulticastLoop(int fd, boolean ipv6, int enabled) throws IOException;
|
private static native void setIpMulticastLoop(int fd, boolean ipv6, int enabled) throws IOException;
|
||||||
private static native void setTimeToLive(int fd, int ttl) throws IOException;
|
private static native void setTimeToLive(int fd, int ttl) throws IOException;
|
||||||
|
private static native int initAddress(int fd, boolean ipv6, byte[] address, int scopeId, int port, long memoryAddress);
|
||||||
}
|
}
|
||||||
|
@ -105,8 +105,6 @@ final class Native {
|
|||||||
|
|
||||||
public static native void ioUringExit(RingBuffer ringBuffer);
|
public static native void ioUringExit(RingBuffer ringBuffer);
|
||||||
|
|
||||||
public static native int initAddress(int fd, boolean ipv6, byte[] address, int scopeId, int port, long remoteMemoryAddress);
|
|
||||||
|
|
||||||
private static native int eventFd();
|
private static native int eventFd();
|
||||||
|
|
||||||
// for testing(it is only temporary)
|
// for testing(it is only temporary)
|
||||||
|
Loading…
Reference in New Issue
Block a user