You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Zhou <ne...@gmail.com> on 2008/04/29 02:09:12 UTC
Bug with IPv6 address
HBase might crash when the network card has a IPv6 address
In order to avoid the problem,
I modify a method in class: org.apache.hadoop.net.DNS
The following is the modified code of this method, it would not return IPv6
address now.
/**
* Returns all the IPs associated with the provided interface, if any, in
* textual form.
*
* @param strInterface
* The name of the network interface to query (e.g. eth0)
* @return A string vector of all the IPs associated with the provided
* interface
* @throws UnknownHostException
* If an UnknownHostException is encountered in querying the
* default interface
*
*/
public static String[] getIPs(String strInterface)
throws UnknownHostException {
try {
NetworkInterface netIF = NetworkInterface.getByName(strInterface);
if (netIF == null)
return new String[] { InetAddress.getLocalHost()
.getHostAddress() };
else {
Vector<String> ips = new Vector<String>();
Enumeration e = netIF.getInetAddresses();
while (e.hasMoreElements())
{
String addr=((InetAddress) e.nextElement()).getHostAddress();
if(addr.length()<=15)//only when it is a IPv4 address
ips.add(addr);
//ips.add(((InetAddress) e.nextElement()).getHostAddress());
}
return ips.toArray(new String[] {});
}
} catch (SocketException e) {
return new String[] { InetAddress.getLocalHost().getHostAddress() };
}
}