mirror of
https://github.com/nmap/nmap.git
synced 2026-01-20 13:19:01 +00:00
Try to trigger connection failure in a more portable way.
The former one was hackish and didn't behave consistently between operating systems. Passing in a zero addrlen should reliably make connect(2) fail.
This commit is contained in:
@@ -86,13 +86,15 @@ static int connect_tcp_failure(void *tdata) {
|
||||
|
||||
memset(&peer, 0, sizeof(peer));
|
||||
peer.sin_family = AF_INET;
|
||||
inet_aton("0.0.0.1", &peer.sin_addr); /* IANA reserved */
|
||||
inet_aton("127.0.0.1", &peer.sin_addr);
|
||||
|
||||
/* pass in addrlen == 0 to force connect(2) to fail */
|
||||
nsock_connect_tcp(ctd->nsp, ctd->nsi, connect_handler, 4000, NULL,
|
||||
(struct sockaddr *)&peer, sizeof(peer), PORT_TCP);
|
||||
(struct sockaddr *)&peer, 0, PORT_TCP);
|
||||
|
||||
nsock_loop(ctd->nsp, 4000);
|
||||
return ctd->connect_result == -EINVAL ? 0 : ctd->connect_result;
|
||||
AssertEqual(ctd->connect_result, EINVAL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user