diff options
author | tedu <> | 2004-03-01 00:37:08 +0000 |
---|---|---|
committer | tedu <> | 2004-03-01 00:37:08 +0000 |
commit | 6b3242c12c197664bcd78a5e7694121a43d26a5b (patch) | |
tree | c3ddfb9cfab7c04611bbbc7736c1b1ee57c558e5 /src/usr.bin | |
parent | c892b360a14ab7e9ad7e9738a8ddc2dad0b8fdaf (diff) | |
download | openbsd-6b3242c12c197664bcd78a5e7694121a43d26a5b.tar.gz openbsd-6b3242c12c197664bcd78a5e7694121a43d26a5b.tar.bz2 openbsd-6b3242c12c197664bcd78a5e7694121a43d26a5b.zip |
resolve pr3694. add -d [etached] to ignore stdin. ok henning@ mcbride@
Diffstat (limited to 'src/usr.bin')
-rw-r--r-- | src/usr.bin/nc/nc.1 | 4 | ||||
-rw-r--r-- | src/usr.bin/nc/netcat.c | 12 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/usr.bin/nc/nc.1 b/src/usr.bin/nc/nc.1 index 64a1dbbc8b..82712fad80 100644 --- a/src/usr.bin/nc/nc.1 +++ b/src/usr.bin/nc/nc.1 | |||
@@ -1,4 +1,4 @@ | |||
1 | .\" $OpenBSD: nc.1,v 1.28 2004/02/20 10:53:10 jmc Exp $ | 1 | .\" $OpenBSD: nc.1,v 1.29 2004/03/01 00:37:08 tedu Exp $ |
2 | .\" | 2 | .\" |
3 | .\" Copyright (c) 1996 David Sacerdote | 3 | .\" Copyright (c) 1996 David Sacerdote |
4 | .\" All rights reserved. | 4 | .\" All rights reserved. |
@@ -89,6 +89,8 @@ to use IPv4 addresses only. | |||
89 | Forces | 89 | Forces |
90 | .Nm | 90 | .Nm |
91 | to use IPv6 addresses only. | 91 | to use IPv6 addresses only. |
92 | .It Fl d | ||
93 | Do not attempt to read from stdin. | ||
92 | .It Fl h | 94 | .It Fl h |
93 | Prints out | 95 | Prints out |
94 | .Nm | 96 | .Nm |
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c index 505cbd77b1..f303bd2fb1 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.67 2004/02/20 10:53:10 jmc Exp $ */ | 1 | /* $OpenBSD: netcat.c,v 1.68 2004/03/01 00:37:08 tedu Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> | 3 | * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> |
4 | * | 4 | * |
@@ -60,6 +60,7 @@ | |||
60 | #define PORT_MAX_LEN 6 | 60 | #define PORT_MAX_LEN 6 |
61 | 61 | ||
62 | /* Command Line Options */ | 62 | /* Command Line Options */ |
63 | int dflag; /* detached, no stdin */ | ||
63 | int iflag; /* Interval Flag */ | 64 | int iflag; /* Interval Flag */ |
64 | int kflag; /* More than one connect */ | 65 | int kflag; /* More than one connect */ |
65 | int lflag; /* Bind to local port */ | 66 | int lflag; /* Bind to local port */ |
@@ -113,7 +114,7 @@ main(int argc, char *argv[]) | |||
113 | endp = NULL; | 114 | endp = NULL; |
114 | sv = NULL; | 115 | sv = NULL; |
115 | 116 | ||
116 | while ((ch = getopt(argc, argv, "46UX:hi:klnp:rs:tuvw:x:zS")) != -1) { | 117 | while ((ch = getopt(argc, argv, "46UX:dhi:klnp:rs:tuvw:x:zS")) != -1) { |
117 | switch (ch) { | 118 | switch (ch) { |
118 | case '4': | 119 | case '4': |
119 | family = AF_INET; | 120 | family = AF_INET; |
@@ -129,6 +130,9 @@ main(int argc, char *argv[]) | |||
129 | if ((socksv != 4 && socksv != 5) || *endp != '\0') | 130 | if ((socksv != 4 && socksv != 5) || *endp != '\0') |
130 | errx(1, "only SOCKS version 4 and 5 supported"); | 131 | errx(1, "only SOCKS version 4 and 5 supported"); |
131 | break; | 132 | break; |
133 | case 'd': | ||
134 | dflag = 1; | ||
135 | break; | ||
132 | case 'h': | 136 | case 'h': |
133 | help(); | 137 | help(); |
134 | break; | 138 | break; |
@@ -578,7 +582,7 @@ readwrite(int nfd) | |||
578 | if (iflag) | 582 | if (iflag) |
579 | sleep(iflag); | 583 | sleep(iflag); |
580 | 584 | ||
581 | if ((n = poll(pfd, 2, timeout)) < 0) { | 585 | if ((n = poll(pfd, 2 - dflag, timeout)) < 0) { |
582 | close(nfd); | 586 | close(nfd); |
583 | err(1, "Polling Error"); | 587 | err(1, "Polling Error"); |
584 | } | 588 | } |
@@ -603,7 +607,7 @@ readwrite(int nfd) | |||
603 | } | 607 | } |
604 | } | 608 | } |
605 | 609 | ||
606 | if (pfd[1].revents & POLLIN) { | 610 | if (!dflag && pfd[1].revents & POLLIN) { |
607 | if ((n = read(wfd, buf, sizeof(buf))) < 0) | 611 | if ((n = read(wfd, buf, sizeof(buf))) < 0) |
608 | return; | 612 | return; |
609 | else if (n == 0) { | 613 | else if (n == 0) { |