[PATCH v2 03/14] linux: xf86OpenConsole: Don't detach from controlling tty when it is our vt
Peter Hutterer
peter.hutterer at who-t.net
Tue Feb 11 06:55:01 CET 2014
On Tue, Feb 04, 2014 at 12:49:09PM +0100, Hans de Goede wrote:
> Detaching from our controllling tty makes little sense when it is the same
typo: controlling. otherwise, Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
Cheers,
Peter
> as the vt we're asked to run on. So automatically assume -keeptty in this case.
>
> This is useful to do because when not running as root the server can only make
> various VT related ioctls when it does not detach from the tty.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> hw/xfree86/os-support/linux/lnx_init.c | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
> index 9ccf261..85709c6 100644
> --- a/hw/xfree86/os-support/linux/lnx_init.c
> +++ b/hw/xfree86/os-support/linux/lnx_init.c
> @@ -79,9 +79,10 @@ switch_to(int vt, const char *from)
> void
> xf86OpenConsole(void)
> {
> - int i, fd = -1, ret;
> + int i, fd = -1, ret, current_vt = -1;
> struct vt_mode VT;
> struct vt_stat vts;
> + struct stat st;
> MessageType from = X_PROBED;
> const char *tty0[] = { "/dev/tty0", "/dev/vc/0", NULL };
> const char *vcs[] = { "/dev/vc/%d", "/dev/tty%d", NULL };
> @@ -126,6 +127,22 @@ xf86OpenConsole(void)
>
> xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
>
> + /* Some of stdin / stdout / stderr maybe redirected to a file */
> + for (i = STDIN_FILENO; i <= STDERR_FILENO; i++) {
> + ret = fstat(i, &st);
> + if (ret == 0 && S_ISCHR(st.st_mode) && major(st.st_rdev) == 4) {
> + current_vt = minor(st.st_rdev);
> + break;
> + }
> + }
> +
> + if (!KeepTty && current_vt == xf86Info.vtno) {
> + xf86Msg(X_PROBED,
> + "controlling tty is VT number %d, auto-enabling KeepTty\n",
> + current_vt);
> + KeepTty = TRUE;
> + }
> +
> if (!KeepTty) {
> pid_t ppid = getppid();
> pid_t ppgid;
> --
> 1.8.5.3
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list