[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v3] Add option to xenconsole to always forward console input



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.innovations@xxxxxxxxx>

---
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@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.