提交 46aebdea 编写于 作者: V Vlad Ilyushchenko

network: set/get TCP_NODELAY (osx)

上级 c8e336ea
......@@ -188,11 +188,11 @@ JNIEXPORT jint JNICALL Java_com_questdb_std_Net_setSndBuf
}
int get_int_sockopt(int fd, int level, int opt) {
int size = 0;
socklen_t len = sizeof(size);
int result = getsockopt(fd, level, opt, &size, &len);
int value = 0;
socklen_t len = sizeof(value);
int result = getsockopt(fd, level, opt, &value, &len);
if (result == 0) {
return size;
return value;
}
return -1;
}
......@@ -214,12 +214,20 @@ JNIEXPORT jint JNICALL Java_com_questdb_std_Net_getRcvBuf
JNIEXPORT jint JNICALL Java_com_questdb_std_Net_setTcpNoDelay
(JNIEnv *e, jclass cl, jlong fd, jboolean noDelay) {
#ifdef __APPLE__
return set_int_sockopt((int) fd, IPPROTO_TCP, TCP_NODELAY, noDelay);
#else
return set_int_sockopt((int) fd, SOL_TCP, TCP_NODELAY, noDelay);
#endif
}
JNIEXPORT jint JNICALL Java_com_questdb_std_Net_getTcpNoDelay
(JNIEnv *e, jclass cl, jlong fd) {
#ifdef __APPLE__
return get_int_sockopt((int) fd, IPPROTO_TCP, TCP_NODELAY);
#else
return get_int_sockopt((int) fd, SOL_TCP, TCP_NODELAY);
#endif
}
JNIEXPORT jint JNICALL Java_com_questdb_std_Net_getEwouldblock
......
......@@ -77,7 +77,7 @@ public class NetTest {
Assert.assertEquals(0, Net.setTcpNoDelay(fd, false));
Assert.assertEquals(0, Net.getTcpNoDelay(fd));
Assert.assertEquals(0, Net.setTcpNoDelay(fd, true));
Assert.assertEquals(1, Net.getTcpNoDelay(fd));
Assert.assertTrue(Net.getTcpNoDelay(fd) > 0);
} finally {
Net.close(fd);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册