1
0
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:
henri
2014-08-10 18:31:00 +00:00
parent a913288efa
commit 97103efdfb

View File

@@ -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;
}