Currently the default behaviour of the xenconsole client is to
ignore any input to stdin, unless stdin and stdout are both
ttys. The new option allows to manually overwrite this, causing the
client to forward input regardless.

Signed-off-by: Felix Schmoll <eggi.innovati...@gmail.com>

---
Changed since v2:
  * change name of option from 'pipe' to 'interactive'
  * extend commit message to include current default handling of stdin
  * refactor code to avoid introducing a new variable
---
 tools/console/client/main.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tools/console/client/main.c b/tools/console/client/main.c
index 977779f034..c340cb7de3 100644
--- a/tools/console/client/main.c
+++ b/tools/console/client/main.c
@@ -334,6 +334,7 @@ int main(int argc, char **argv)
                { "num",     1, 0, 'n' },
                { "help",    0, 0, 'h' },
                { "start-notify-fd", 1, 0, 's' },
+               { "interactive", 0, 0, 'i' },
                { 0 },
 
        };
@@ -344,9 +345,6 @@ int main(int argc, char **argv)
        console_type type = CONSOLE_INVAL;
        bool interactive = 0;
 
-       if (isatty(STDIN_FILENO) && isatty(STDOUT_FILENO))
-               interactive = 1;
-
        while((ch = getopt_long(argc, argv, sopt, lopt, &opt_ind)) != -1) {
                switch(ch) {
                case 'h':
@@ -370,6 +368,9 @@ int main(int argc, char **argv)
                case 's':
                        start_notify_fd = atoi(optarg);
                        break;
+               case 'i':
+                       interactive = 1;
+                       break;
                default:
                        fprintf(stderr, "Invalid argument\n");
                        fprintf(stderr, "Try `%s --help' for more 
information.\n", 
@@ -464,7 +465,8 @@ int main(int argc, char **argv)
        }
 
        init_term(spty, &attr);
-       if (interactive) {
+       if (isatty(STDIN_FILENO) && isatty(STDOUT_FILENO)) {
+               interactive = 1;
                init_term(STDIN_FILENO, &stdin_old_attr);
                atexit(restore_term_stdin); /* if this fails, oh dear */
        }
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to