diff options
author | Darren Tucker <dtucker@zip.com.au> | 2007-06-12 23:41:06 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2007-06-12 23:41:06 +1000 |
commit | 43ce902449abc553e570af717a5eafe689150381 (patch) | |
tree | 92358863a48a813de93e392b79d3902b7064d7b7 | |
parent | 8f6d0ed60eb0d790564a5f47ba63c9bc3c734058 (diff) |
- djm@cvs.openbsd.org 2007/06/12 08:24:20
[scp.c]
make scp try to skip FIFOs rather than blocking when nothing is listening.
depends on the platform supporting sane O_NONBLOCK semantics for open
on FIFOs (apparently POSIX does not mandate this), which OpenBSD does.
bz #856; report by cjwatson AT debian.org; ok markus@
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | scp.c | 5 |
2 files changed, 10 insertions, 3 deletions
@@ -12,6 +12,12 @@ | |||
12 | [ssh-gss.h gss-serv.c gss-genr.c] | 12 | [ssh-gss.h gss-serv.c gss-genr.c] |
13 | relocate server-only GSSAPI code from libssh to server; bz #1225 | 13 | relocate server-only GSSAPI code from libssh to server; bz #1225 |
14 | patch from simon AT sxw.org.uk; ok markus@ dtucker@ | 14 | patch from simon AT sxw.org.uk; ok markus@ dtucker@ |
15 | - djm@cvs.openbsd.org 2007/06/12 08:24:20 | ||
16 | [scp.c] | ||
17 | make scp try to skip FIFOs rather than blocking when nothing is listening. | ||
18 | depends on the platform supporting sane O_NONBLOCK semantics for open | ||
19 | on FIFOs (apparently POSIX does not mandate this), which OpenBSD does. | ||
20 | bz #856; report by cjwatson AT debian.org; ok markus@ | ||
15 | 21 | ||
16 | 20070611 | 22 | 20070611 |
17 | - (djm) Bugzilla #1306: silence spurious error messages from hang-on-exit | 23 | - (djm) Bugzilla #1306: silence spurious error messages from hang-on-exit |
@@ -3026,4 +3032,4 @@ | |||
3026 | OpenServer 6 and add osr5bigcrypt support so when someone migrates | 3032 | OpenServer 6 and add osr5bigcrypt support so when someone migrates |
3027 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ | 3033 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ |
3028 | 3034 | ||
3029 | $Id: ChangeLog,v 1.4691 2007/06/12 13:40:39 dtucker Exp $ | 3035 | $Id: ChangeLog,v 1.4692 2007/06/12 13:41:06 dtucker Exp $ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: scp.c,v 1.156 2007/01/22 13:06:21 djm Exp $ */ | 1 | /* $OpenBSD: scp.c,v 1.157 2007/06/12 08:24:20 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * scp - secure remote copy. This is basically patched BSD rcp which | 3 | * scp - secure remote copy. This is basically patched BSD rcp which |
4 | * uses ssh to do the data transfer (instead of using rcmd). | 4 | * uses ssh to do the data transfer (instead of using rcmd). |
@@ -596,12 +596,13 @@ source(int argc, char **argv) | |||
596 | name); | 596 | name); |
597 | goto next; | 597 | goto next; |
598 | } | 598 | } |
599 | if ((fd = open(name, O_RDONLY, 0)) < 0) | 599 | if ((fd = open(name, O_RDONLY|O_NONBLOCK, 0)) < 0) |
600 | goto syserr; | 600 | goto syserr; |
601 | if (fstat(fd, &stb) < 0) { | 601 | if (fstat(fd, &stb) < 0) { |
602 | syserr: run_err("%s: %s", name, strerror(errno)); | 602 | syserr: run_err("%s: %s", name, strerror(errno)); |
603 | goto next; | 603 | goto next; |
604 | } | 604 | } |
605 | unset_nonblock(fd); | ||
605 | switch (stb.st_mode & S_IFMT) { | 606 | switch (stb.st_mode & S_IFMT) { |
606 | case S_IFREG: | 607 | case S_IFREG: |
607 | break; | 608 | break; |