]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
- Delay fork (-f option) in ssh until after port forwarded connections
authorDamien Miller <djm@mindrot.org>
Sat, 13 Nov 1999 02:28:45 +0000 (13:28 +1100)
committerDamien Miller <djm@mindrot.org>
Sat, 13 Nov 1999 02:28:45 +0000 (13:28 +1100)
   have been initialised. Patch from Jani Hakala <jahakala@cc.jyu.fi>

ssh.c

diff --git a/ssh.c b/ssh.c
index 1514e185c6e743e9a9a5589870acf87fc4443ee0..a8a806b8c41d0eb234dd6bd4a020309317bf76dc 100644 (file)
--- 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)