Vyom,
Thank you for the explanation. Makes sense.
Your changes look fine as are, but maybe '250 *colonP = '\0';'
would be clearer ( though I do note that we do *name_colonP = 0;
elsewhere in this file ).
-Chris.
On 21/12/16 13:41, Vyom Tewari wrote:
Hi Chris,
If you create the Inet6Address using the following constructor
"Inet6Address (String , byte[], String )" then it will call the
following private method " initstr (hostName, addr, ifname);" and it you
see the implementation of this method then you will see the below code.
#######################################
try {
NetworkInterface nif = NetworkInterface.getByName (ifname);
if (nif == null) {
throw new UnknownHostException ("no such interface " +
ifname);
}
initif (hostName, addr, nif);
########################################
So this is the connection between Inet6Address and
NetworkInterface.getByName but same is not the case for ipv4 address.
As we added the scope name recently(not very recent but after
jdk1.7.0_79) so if you pass the virtual sub interface interface
like(2001:7a8:b0cd:1:0:0:0:17%net0:1) then it will fail to get the sub
interface and UHE will be thrown.
to handle this i did the code change.
Thanks,
Vyom
On 12/21/2016 5:04 PM, Chris Hegarty wrote:
Hi Vyom,
Sorry, I'm missing the connection between Inet6Address and
NetworkInterface.getByName, how do these interact?
-Chris.
On 21/12/16 10:20, Vyom Tewari wrote:
incorporated the
comments(http://cr.openjdk.java.net/~vtewari/8168840/webrev0.2/index.html
<http://cr.openjdk.java.net/%7Evtewari/8168840/webrev0.2/index.html>).
Thanks,
Vyom
On Wednesday 21 December 2016 02:58 PM, Langer, Christoph wrote:
Hi Vyom,
looks good, thanks for the update.
Minor formatting:
- Add a blank line between line 258/259 and 268/269 in the new file
version.
- line 259 //search the child list - add a space between "//" and
"search..."
Disclaimer: I'm not an official reviewer.
Best regards
Christoph
-----Original Message-----
From: net-dev [mailto:net-dev-boun...@openjdk.java.net] On Behalf Of
Vyom
Tewari
Sent: Mittwoch, 21. Dezember 2016 09:51
Cc: net-dev <net-dev@openjdk.java.net>
Subject: Re: RFR 8168840: InetAddress.getByName() throws
java.net.UnknownHostException no such interface when used with virtual
interfaces on Solaris
Hi All,
Please find the latest
webrev(http://cr.openjdk.java.net/~vtewari/8168840/webrev0.1/index.html
<http://cr.openjdk.java.net/%7Evtewari/8168840/webrev0.1/index.html>).
Thanks,
Vyom
On Tuesday 13 December 2016 01:38 PM, Langer, Christoph wrote:
Hi Vyom,
thanks for looking at this. Overall your fix and test look good to
me.
The coding to do the parent search and if required a child search in
Java_java_net_NetworkInterface_getByName0 could be done a bit more
straightforward, e.g. like this:
// search the list of interfaces by name
// for virtual interfaces we need to find the parent first
colonp = strchr(name_utf, ':');
if (colonp == NULL) {
searchName = name_utf;
} else {
jio_snprintf(pname, IFNAMESIZE, "%.*s", colonp - name_utf);
searchName = pname;
}
curr = ifs;
while (curr != NULL) {
if (strcmp(searchName, curr->name) == 0) {
break;
}
curr = curr->next;
}
// search the child list
if (curr != NULL && colonp != NULL) {
curr = curr->childs;
while (curr != NULL) {
if (strcmp(name_utf, curr->name) == 0) {
break;
}
curr = curr->next;
}
}
Best regards
Christoph
-----Original Message-----
From: net-dev [mailto:net-dev-boun...@openjdk.java.net] On Behalf Of
Vyom
Tewari
Sent: Dienstag, 13. Dezember 2016 04:47
To: net-dev <net-dev@openjdk.java.net>
Subject: RFR 8168840: InetAddress.getByName() throws
java.net.UnknownHostException no such interface when used with
virtual
interfaces on Solaris
Hi,
Please review the code changes for below issue.
BugId : https://bugs.openjdk.java.net/browse/JDK-8168840
webrev :
http://cr.openjdk.java.net/~vtewari/8168840/webrev0.0/index.html
<http://cr.openjdk.java.net/%7Evtewari/8168840/webrev0.0/index.html>
Thanks,
Vyom