On Mon, 10 Jan 2022 07:37:24 GMT, Daniel Jelinski <d...@openjdk.java.net> wrote:

>> src/java.base/windows/native/libnet/NetworkInterface_winXP.c line 256:
>> 
>>> 254: 
>>> 255:     ret = enumInterfaces(env, netifPP);
>>> 256:     if (ret == -1) {
>> 
>> this change is questionable: enumInterfaces returns -2  to allows processing 
>> to continue with IPv6 data ... this change will prohibit that policy
>
> In my experiments the `enumInterfaces` succeeded in IPv6-only environment. 
> The function only fails with -2 when a new interface is added during 
> enumeration.
> I could modify the function to stop returning -2 if you think it makes sense.

yes, that's what I have onserved also It looks like the error handling in 
enumInterfaces is cut and paste from lookupIPAddrTable, as per the comment

        // this different error code is to handle the case when we call
        // GetIpAddrTable in pure IPv6 environment
        return -2;
when in fact it is calling GetIfTable

and if that returns an error, it seems reasonable to terminate processing at 
that stage by throwing an appropriate exception ... I can't see how it can 
continue

So it would seems that enumInterfaces curennt return value -2 is misleading

-------------

PR: https://git.openjdk.java.net/jdk/pull/6090

Reply via email to