summaryrefslogtreecommitdiff
path: root/usr.bin/ssh
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2010-07-12 22:38:53 +0000
committerDamien Miller <djm@cvs.openbsd.org>2010-07-12 22:38:53 +0000
commitd38a45302ba56fc07667425f0cf4004193d210e7 (patch)
treeb46b565f3f40c7bf42817ea76b684f8f917596e2 /usr.bin/ssh
parentd70b966950f6d1e270311c555c5c22ed5847254b (diff)
Make ExitOnForwardFailure work with fork-after-authentication ("ssh -f")
for protocol 2. ok markus@
Diffstat (limited to 'usr.bin/ssh')
-rw-r--r--usr.bin/ssh/ssh.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.bin/ssh/ssh.c b/usr.bin/ssh/ssh.c
index f2a714e50fd..e87fb8a0478 100644
--- a/usr.bin/ssh/ssh.c
+++ b/usr.bin/ssh/ssh.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh.c,v 1.341 2010/06/26 23:04:04 djm Exp $ */
+/* $OpenBSD: ssh.c,v 1.342 2010/07/12 22:38:52 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1282,8 +1282,13 @@ ssh_session2(void)
/* Start listening for multiplex clients */
muxserver_listen();
- /* If requested, let ssh continue in the background. */
- if (fork_after_authentication_flag) {
+ /*
+ * If requested and we are not interested in replies to remote
+ * forwarding requests, then let ssh continue in the background.
+ */
+ if (fork_after_authentication_flag &&
+ (!options.exit_on_forward_failure ||
+ options.num_remote_forwards == 0)) {
fork_after_authentication_flag = 0;
if (daemon(1, 1) < 0)
fatal("daemon() failed: %.200s", strerror(errno));