[PATCH] ssh: set proctitle for mux master
Bert Wesarg
bert.wesarg at googlemail.com
Tue Feb 8 08:11:58 EST 2011
Preserving the command line from the invoking ssh command doesn't
make much sense, so use setproctitle() to hide the arguments.
---
ssh.c | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/ssh.c b/ssh.c
index d32ef78..8ebcc88 100644
--- a/ssh.c
+++ b/ssh.c
@@ -230,12 +230,25 @@ main(int ac, char **av)
struct servent *sp;
Forward fwd;
- /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
- sanitise_stdfd();
-
__progname = ssh_get_progname(av[0]);
init_rng();
+#ifndef HAVE_SETPROCTITLE
+ /* Prepare for later setproctitle emulation */
+ {
+ /* Save argv. Duplicate so setproctitle emulation doesn't clobber it */
+ char **saved_argv = xcalloc(ac + 1, sizeof(*saved_argv));
+ for (i = 0; i < ac; i++)
+ saved_argv[i] = xstrdup(av[i]);
+ saved_argv[i] = NULL;
+ compat_init_setproctitle(ac, av);
+ av = saved_argv;
+ }
+#endif
+
+ /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
+ sanitise_stdfd();
+
/*
* Discard other fds that are hanging around. These can cause problem
* with backgrounded ssh processes started by ControlPersist.
@@ -965,6 +978,7 @@ control_persist_detach(void)
if (devnull > STDERR_FILENO)
close(devnull);
}
+ setproctitle("%s [mux]", options.control_path);
}
/* Do fork() after authentication. Used by "ssh -f" */
--
1.7.3.3.1603.g7f137
More information about the openssh-unix-dev
mailing list