diff options
| author | markus <> | 2008-05-09 09:00:11 +0000 |
|---|---|---|
| committer | markus <> | 2008-05-09 09:00:11 +0000 |
| commit | 70f2e78de151241dd84c4cbd046c1ee44d674f20 (patch) | |
| tree | 375e5dffc8e101aa538d75bfa249ae5d4a1fd71f /src | |
| parent | d60f4c10dc5e1ece6cf921b58e6c3a5dc1276825 (diff) | |
| download | openbsd-70f2e78de151241dd84c4cbd046c1ee44d674f20.tar.gz openbsd-70f2e78de151241dd84c4cbd046c1ee44d674f20.tar.bz2 openbsd-70f2e78de151241dd84c4cbd046c1ee44d674f20.zip | |
try SO_BINDANY for -s, but do not insist; ok bob, reyk
Diffstat (limited to 'src')
| -rw-r--r-- | src/usr.bin/nc/netcat.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c index 4228326bdd..48b2b673ba 100644 --- a/src/usr.bin/nc/netcat.c +++ b/src/usr.bin/nc/netcat.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: netcat.c,v 1.90 2008/05/06 05:47:39 djm Exp $ */ | 1 | /* $OpenBSD: netcat.c,v 1.91 2008/05/09 09:00:11 markus Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> | 3 | * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> |
| 4 | * | 4 | * |
| @@ -487,7 +487,7 @@ int | |||
| 487 | remote_connect(const char *host, const char *port, struct addrinfo hints) | 487 | remote_connect(const char *host, const char *port, struct addrinfo hints) |
| 488 | { | 488 | { |
| 489 | struct addrinfo *res, *res0; | 489 | struct addrinfo *res, *res0; |
| 490 | int s, error; | 490 | int s, error, on = 1; |
| 491 | 491 | ||
| 492 | if ((error = getaddrinfo(host, port, &hints, &res))) | 492 | if ((error = getaddrinfo(host, port, &hints, &res))) |
| 493 | errx(1, "getaddrinfo: %s", gai_strerror(error)); | 493 | errx(1, "getaddrinfo: %s", gai_strerror(error)); |
| @@ -502,6 +502,8 @@ remote_connect(const char *host, const char *port, struct addrinfo hints) | |||
| 502 | if (sflag || pflag) { | 502 | if (sflag || pflag) { |
| 503 | struct addrinfo ahints, *ares; | 503 | struct addrinfo ahints, *ares; |
| 504 | 504 | ||
| 505 | /* try SO_BINDANY, but don't insist */ | ||
| 506 | setsockopt(s, SOL_SOCKET, SO_BINDANY, &on, sizeof(on)); | ||
| 505 | memset(&ahints, 0, sizeof(struct addrinfo)); | 507 | memset(&ahints, 0, sizeof(struct addrinfo)); |
| 506 | ahints.ai_family = res0->ai_family; | 508 | ahints.ai_family = res0->ai_family; |
| 507 | ahints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM; | 509 | ahints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM; |
