summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c
diff options
context:
space:
mode:
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.c30
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");
OpenPOWER on IntegriCloud