]> andersk Git - openssh.git/blobdiff - sshd.c
20001203
[openssh.git] / sshd.c
diff --git a/sshd.c b/sshd.c
index 4a5f6627832e5f9f696e672cf08cf9890669502d..4a01ebec7e485583cafb8c68e40644e7a768bb66 100644 (file)
--- a/sshd.c
+++ b/sshd.c
@@ -40,7 +40,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshd.c,v 1.134 2000/11/12 19:50:38 markus Exp $");
+RCSID("$OpenBSD: sshd.c,v 1.135 2000/11/29 21:11:59 markus Exp $");
 
 #include "xmalloc.h"
 #include "rsa.h"
@@ -111,6 +111,9 @@ int debug_flag = 0;
 /* Flag indicating that the daemon is being started from inetd. */
 int inetd_flag = 0;
 
+/* Flag indicating that sshd should not detach and become a daemon. */
+int no_daemon_flag = 0;
+
 /* debug goes to stderr unless inetd_flag is set */
 int log_stderr = 0;
 
@@ -583,7 +586,7 @@ main(int ac, char **av)
        initialize_server_options(&options);
 
        /* Parse command-line arguments. */
-       while ((opt = getopt(ac, av, "f:p:b:k:h:g:V:u:diqQ46")) != EOF) {
+       while ((opt = getopt(ac, av, "f:p:b:k:h:g:V:u:dDiqQ46")) != EOF) {
                switch (opt) {
                case '4':
                        IPv4or6 = AF_INET;
@@ -605,6 +608,9 @@ main(int ac, char **av)
                                exit(1);
                        }
                        break;
+               case 'D':
+                       no_daemon_flag = 1;
+                       break;
                case 'i':
                        inetd_flag = 1;
                        break;
@@ -769,7 +775,7 @@ main(int ac, char **av)
         * from the controlling terminal, and fork.  The original process
         * exits.
         */
-       if (!debug_flag && !inetd_flag) {
+       if (!(debug_flag || inetd_flag || no_daemon_flag)) {
 #ifdef TIOCNOTTY
                int fd;
 #endif /* TIOCNOTTY */
This page took 0.058137 seconds and 4 git commands to generate.