mirror of
https://github.com/nmap/nmap.git
synced 2025-12-10 09:49:05 +00:00
Hopefully fixes the interrupted system call fatal
behaviour unearthed by the mass_ping -> ultra_scan migration.
This commit is contained in:
10
tcpip.cc
10
tcpip.cc
@@ -1831,6 +1831,8 @@ int pcap_select(pcap_t *p, struct timeval *timeout)
|
||||
int fd, ret;
|
||||
fd_set rfds;
|
||||
|
||||
again:
|
||||
|
||||
if ((fd = my_pcap_get_selectable_fd(p)) == -1)
|
||||
return -1;
|
||||
|
||||
@@ -1839,8 +1841,12 @@ int pcap_select(pcap_t *p, struct timeval *timeout)
|
||||
|
||||
ret = select(fd + 1, &rfds, NULL, NULL, timeout);
|
||||
|
||||
if (ret == -1)
|
||||
fatal("Your system does not support select()ing on pcap devices (%s). PLEASE REPORT THIS ALONG WITH DETAILED SYSTEM INFORMATION TO THE nmap-dev MAILING LIST!", strerror(errno));
|
||||
if (ret == -1) {
|
||||
if (errno == EINTR)
|
||||
goto again;
|
||||
else
|
||||
fatal("Your system does not support select()ing on pcap devices (%s). PLEASE REPORT THIS ALONG WITH DETAILED SYSTEM INFORMATION TO THE nmap-dev MAILING LIST!", strerror(errno));
|
||||
} while (errno == EINTR);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user