8201369: Inet4AddressImpl_getLocalHostName reverse lookup on Solaris only

Reviewed-by: clanger, chegar
This commit is contained in:
Srividya Shamaiah 2018-04-16 12:50:10 +05:30 committed by Christoph Langer
parent 1ee531afe9
commit 698152fb51

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -68,6 +68,7 @@ Java_java_net_Inet4AddressImpl_getLocalHostName(JNIEnv *env, jobject this) {
hostname[0] = '\0'; hostname[0] = '\0';
if (gethostname(hostname, NI_MAXHOST) != 0) { if (gethostname(hostname, NI_MAXHOST) != 0) {
strcpy(hostname, "localhost"); strcpy(hostname, "localhost");
#if defined(__solaris__)
} else { } else {
// try to resolve hostname via nameservice // try to resolve hostname via nameservice
// if it is known but getnameinfo fails, hostname will still be the // if it is known but getnameinfo fails, hostname will still be the
@ -86,6 +87,12 @@ Java_java_net_Inet4AddressImpl_getLocalHostName(JNIEnv *env, jobject this) {
freeaddrinfo(res); freeaddrinfo(res);
} }
} }
#else
} else {
// make sure string is null-terminated
hostname[NI_MAXHOST] = '\0';
}
#endif
return (*env)->NewStringUTF(env, hostname); return (*env)->NewStringUTF(env, hostname);
} }