summaryrefslogtreecommitdiff
path: root/native/jni/native-lib/cpnet.h
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/native-lib/cpnet.h')
-rw-r--r--native/jni/native-lib/cpnet.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/native/jni/native-lib/cpnet.h b/native/jni/native-lib/cpnet.h
index 85a287a33..a4aa8f15c 100644
--- a/native/jni/native-lib/cpnet.h
+++ b/native/jni/native-lib/cpnet.h
@@ -40,6 +40,7 @@ exception statement from your version. */
#include <jni.h>
#include <jcl.h>
+#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
@@ -53,8 +54,8 @@ typedef struct {
#define CPNET_SHUTDOWN_READ 1
#define CPNET_SHUTDOWN_WRITE 2
-JNIEXPORT jint cpnet_openSocketStream(JNIEnv *env, jint *fd);
-JNIEXPORT jint cpnet_openSocketDatagram(JNIEnv *env, jint *fd);
+JNIEXPORT jint cpnet_openSocketStream(JNIEnv *env, jint *fd, jint family);
+JNIEXPORT jint cpnet_openSocketDatagram(JNIEnv *env, jint *fd, jint family);
JNIEXPORT jint cpnet_shutdown (JNIEnv *env, jint fd, jbyte flag);
JNIEXPORT jint cpnet_close(JNIEnv *env, jint fd);
JNIEXPORT jint cpnet_listen(JNIEnv *env, jint fd, jint queuelen);
@@ -175,7 +176,7 @@ static inline jboolean cpnet_isIPV4Address(cpnet_address *addr)
static inline void cpnet_IPV4AddressToBytes(cpnet_address *netaddr, jbyte *octets)
{
struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(netaddr->data[0]);
- jint sysaddr = ipaddr->sin_addr.s_addr;
+ jint sysaddr = ntohl(ipaddr->sin_addr.s_addr);
octets[0] = (sysaddr >> 24) & 0xff;
octets[1] = (sysaddr >> 16) & 0xff;
@@ -193,7 +194,7 @@ static inline void cpnet_bytesToIPV4Address(cpnet_address *netaddr, jbyte *octet
sysaddr |= ((jint)octets[2]) << 8;
sysaddr |= ((jint)octets[3]);
- ipaddr->sin_addr.s_addr = sysaddr;
+ ipaddr->sin_addr.s_addr = htonl(sysaddr);
}
static inline void cpnet_IPV6AddressToBytes(cpnet_address *netaddr, jbyte *octets)