summaryrefslogtreecommitdiff
path: root/ssh.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>1999-11-13 13:28:45 +1100
committerDamien Miller <djm@mindrot.org>1999-11-13 13:28:45 +1100
commitd46202f0d19b18b4537804e3510e561d6a125a0d (patch)
tree3c01dae0373a5c8e6c06d5efe5bf17a1c346cf9b /ssh.c
parenta2d6efe013e175f408733970803d535908554297 (diff)
downloadopenssh-git-d46202f0d19b18b4537804e3510e561d6a125a0d.tar.gz
- Delay fork (-f option) in ssh until after port forwarded connections
have been initialised. Patch from Jani Hakala <jahakala@cc.jyu.fi>
Diffstat (limited to 'ssh.c')
-rw-r--r--ssh.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/ssh.c b/ssh.c
index 1514e185..a8a806b8 100644
--- a/ssh.c
+++ b/ssh.c
@@ -18,7 +18,7 @@ Modified to work with SSL by Niels Provos <provos@citi.umich.edu> in Canada.
*/
#include "includes.h"
-RCSID("$Id: ssh.c,v 1.6 1999/11/12 04:19:27 damien Exp $");
+RCSID("$Id: ssh.c,v 1.7 1999/11/13 02:28:45 damien Exp $");
#include "xmalloc.h"
#include "ssh.h"
@@ -599,17 +599,6 @@ main(int ac, char **av)
/* Close connection cleanly after attack. */
cipher_attack_detected = packet_disconnect;
- /* If requested, fork and let ssh continue in the background. */
- if (fork_after_authentication_flag)
- {
- int ret = fork();
- if (ret == -1)
- fatal("fork failed: %.100s", strerror(errno));
- if (ret != 0)
- exit(0);
- setsid();
- }
-
/* Enable compression if requested. */
if (options.compression)
{
@@ -771,6 +760,17 @@ main(int ac, char **av)
options.remote_forwards[i].host_port);
}
+ /* If requested, fork and let ssh continue in the background. */
+ if (fork_after_authentication_flag)
+ {
+ int ret = fork();
+ if (ret == -1)
+ fatal("fork failed: %.100s", strerror(errno));
+ if (ret != 0)
+ exit(0);
+ setsid();
+ }
+
/* If a command was specified on the command line, execute the command now.
Otherwise request the server to start a shell. */
if (buffer_len(&command) > 0)