Thanks folks, I've been running some testing here and noticed that IP_REQ_TIMED_OUT can also be returned from IcmpSendEcho (as opposed to only being an error code in an ICMP_ECHO_REPLY)
Updated webrev here: http://cr.openjdk.java.net/~robm/8159410/webrev.03/ -Rob On 22/09/16 06:12, Chris Hegarty wrote: > > > On 22 Sep 2016, at 18:04, Mark Sheppard <mark.shepp...@oracle.com> wrote: > > > > > > it is good that you added the additional error code, "cover all bases", as > > they say. > > In any case your exception handling will inform if something has been > > missed, should it occur. > > So at the risk of triggering another MS curiosity, the changes look fine > > +1 > > -Chris. > > > regards > > Mark > > > > On 21/09/2016 19:45, Rob McKenna wrote: > >> The link would be handy: > >> > >> http://cr.openjdk.java.net/~robm/8159410/webrev.02/ > >> > >> -Rob > >> > >> On 21/09/16 07:44, Rob McKenna wrote: > >>> I've updated the webrev here with the copyright year (thanks Christoph) > >>> and extra error codes. I overlooked the codes from the old implementation > >>> of tcp_ping4 above this code. These are winsock error codes which I would > >>> expect IcmpSendEcho to use, but in our testing it actually returned the > >>> system error codes in at least one situation: > >>> > >>> https://msdn.microsoft.com/en-gb/library/windows/desktop/ms740668%28v=vs.85%29.aspx > >>> https://msdn.microsoft.com/en-us/library/windows/desktop/ms681383%28v=vs.85%29.aspx > >>> > >>> -Rob > >>> > >>> On 21/09/16 06:32, Seán Coffey wrote: > >>>> spotted an interesting blog on the MSDN timeout issue here : > >>>> https://www.frameflow.com/ping-utility-flaw-in-windows-api-creating-false-timeouts/ > >>>> > >>>> Regards, > >>>> Sean. > >>>> > >>>> On 21/09/16 17:42, Mark Sheppard wrote: > >>>>> the IcmpSendEcho series of calls come with some idiosyncrasies in that > >>>>> there is a minimum timeout that they can handle > >>>>> think it is about 1000msecs. isReachable can specify a finer grained > >>>>> timeout hence the need for timeout check > >>>>> > >>>>> regards > >>>>> Mark > >>>>> > >>>>> On 21/09/2016 17:18, Vyom Tewari wrote: > >>>>>> Hi Rob, > >>>>>> > >>>>>> Do you really think this extra check is required ? > >>>>>> > >>>>>> if (pEchoReply->Status == IP_SUCCESS > >>>>>> + && (int)pEchoReply->RoundTripTime <= timeout) I did not found any > >>>>>> doc(MSDN) which explains this. I think in case of IP_SUCCESS > >>>>>> "RoundTripTime" is always less than timeout. I think similar changes is > >>>>>> required in Inet6Address.c as well ? Thanks, Vyom > >>>>>> > >>>>>> On Wednesday 21 September 2016 08:46 PM, Rob McKenna wrote: > >>>>>>> Hi folks, > >>>>>>> > >>>>>>> I'd like to fix a bug caused by an incorrect assumption. The > >>>>>>> IcmpSendEcho* calls can actually return a similar set of errors > >>>>>>> regardless of whether the call itself failed or succeeded. This > >>>>>>> change checks that both the call and the ping were successful. In > >>>>>>> addition to that it takes a number of common failure causes into > >>>>>>> account before deciding to throw an exception. > >>>>>>> > >>>>>>> http://cr.openjdk.java.net/~robm/8159410/webrev.01/ > >>>>>>> > >>>>>>> -Rob > > >