summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormarkus <>2008-05-09 09:00:11 +0000
committermarkus <>2008-05-09 09:00:11 +0000
commit70f2e78de151241dd84c4cbd046c1ee44d674f20 (patch)
tree375e5dffc8e101aa538d75bfa249ae5d4a1fd71f /src
parentd60f4c10dc5e1ece6cf921b58e6c3a5dc1276825 (diff)
downloadopenbsd-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.c6
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
487remote_connect(const char *host, const char *port, struct addrinfo hints) 487remote_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;