More accurate handling of obscure ICMP-based connect errors.

This commit is contained in:
dmiller 2016-10-12 15:26:55 +00:00
parent 594756bd1d
commit fbc9ddae92

View file

@ -278,6 +278,10 @@ static void handleConnectResult(UltraScanInfo *USI, HostScanStats *hss,
break;
#ifdef ENOPROTOOPT
case ENOPROTOOPT:
newhoststate = HOST_DOWN;
newportstate = PORT_FILTERED;
current_reason = ER_PROTOUNREACH;
break;
#endif
case EHOSTUNREACH:
newhoststate = HOST_DOWN;
@ -301,6 +305,12 @@ static void handleConnectResult(UltraScanInfo *USI, HostScanStats *hss,
newportstate = PORT_FILTERED;
current_reason = ER_NETUNREACH;
break;
case ENONET:
/* For Linux at least, this means ICMP type 3 code 8, source host isolated */
newhoststate = HOST_DOWN;
newportstate = PORT_FILTERED;
current_reason = ER_DESTUNREACH;
break;
case ENETDOWN:
case ENETRESET:
case ECONNABORTED: