diff options
Diffstat (limited to 'libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c')
-rw-r--r-- | libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c index fc921ecef1f..43f2d9146dd 100644 --- a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c +++ b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c @@ -163,10 +163,12 @@ Java_java_net_VMInetAddress_getHostByAddr (JNIEnv * env, addr = cpnet_newIPV4Address(env); cpnet_bytesToIPV4Address (addr, octets); break; +#ifdef HAVE_INET6 case 16: addr = cpnet_newIPV6Address(env); cpnet_bytesToIPV6Address (addr, octets); break; +#endif default: JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Bad IP Address"); return (jstring) NULL; @@ -245,9 +247,9 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env, /* Now loop and copy in each address */ for (i = 0; i < addresses_count; i++) { - if (cpnet_isIPV6Address (addresses[i])) + if (cpnet_isIPV4Address (addresses[i])) { - ret_octets = (*env)->NewByteArray (env, 16); + ret_octets = (*env)->NewByteArray (env, 4); if (!ret_octets) { @@ -258,15 +260,16 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env, octets = (*env)->GetByteArrayElements (env, ret_octets, 0); - cpnet_IPV6AddressToBytes (addresses[i], octets); + cpnet_IPV4AddressToBytes (addresses[i], octets); (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); (*env)->SetObjectArrayElement (env, addrs, i, ret_octets); } - else if (cpnet_isIPV4Address (addresses[i])) +#ifdef HAVE_INET6 + else if (cpnet_isIPV6Address (addresses[i])) { - ret_octets = (*env)->NewByteArray (env, 4); + ret_octets = (*env)->NewByteArray (env, 16); if (!ret_octets) { @@ -277,12 +280,13 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env, octets = (*env)->GetByteArrayElements (env, ret_octets, 0); - cpnet_IPV4AddressToBytes (addresses[i], octets); + cpnet_IPV6AddressToBytes (addresses[i], octets); (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); (*env)->SetObjectArrayElement (env, addrs, i, ret_octets); } +#endif else { JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); @@ -336,9 +340,9 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env, if (!address) return (jbyteArray) NULL; - if (cpnet_isIPV6Address (address)) + if (cpnet_isIPV4Address (address)) { - ret_octets = (jbyteArray) (*env)->NewByteArray (env, 16); + ret_octets = (jbyteArray) (*env)->NewByteArray (env, 4); if (!ret_octets) { @@ -349,13 +353,14 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env, octets = (*env)->GetByteArrayElements (env, ret_octets, 0); - cpnet_IPV6AddressToBytes (address, octets); + cpnet_IPV4AddressToBytes (address, octets); (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); } - else if (cpnet_isIPV4Address (address)) +#ifdef HAVE_INET6 + else if (cpnet_isIPV6Address (address)) { - ret_octets = (jbyteArray) (*env)->NewByteArray (env, 4); + ret_octets = (jbyteArray) (*env)->NewByteArray (env, 16); if (!ret_octets) { @@ -366,10 +371,11 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env, octets = (*env)->GetByteArrayElements (env, ret_octets, 0); - cpnet_IPV4AddressToBytes (address, octets); + cpnet_IPV6AddressToBytes (address, octets); (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); } +#endif else { JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); |