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