[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 1/2] tools/console: reset tty when xenconsole fails
On Tue, Mar 18, 2014 at 11:00 AM, Ian Jackson <ian.jackson@xxxxxxxxxxxxx> wrote: > If xenconsole (the client program) fails, it calls err. This would > previously neglect to reset the user's terminal to sanity. Use atexit > to do so. > > This routinely happens in Xen 4.4 RC5 with pygrub because libxl > writes the value "" to the tty xenstore key when using xenconsole. > After this patch this just results in a harmless error message. > > Reported-by: M A Young <m.a.young@xxxxxxxxxxxx> > Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> > CC: M A Young <m.a.young@xxxxxxxxxxxx> > CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> > Acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > > --- > v2: Fix whitespace error (reintroduce hard tab) > Fix commit message not to claim ignorance about root cause > --- > tools/console/client/main.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/tools/console/client/main.c b/tools/console/client/main.c > index eb6a1a9..7ce4f24 100644 > --- a/tools/console/client/main.c > +++ b/tools/console/client/main.c > @@ -257,6 +257,13 @@ typedef enum { > CONSOLE_SERIAL, > } console_type; > > +static struct termios stdin_old_attr; > + > +static void restore_term_stdin(void) > +{ > + restore_term(STDIN_FILENO, &stdin_old_attr); > +} > + > int main(int argc, char **argv) > { > struct termios attr; > @@ -383,9 +390,9 @@ int main(int argc, char **argv) > } > > init_term(spty, &attr); > - init_term(STDIN_FILENO, &attr); > + init_term(STDIN_FILENO, &stdin_old_attr); > + atexit(restore_term_stdin); /* if this fails, oh dear */ You may want to consider using a signal handler too. atexit() isn't called when exiting due to SIGTERM or SIGSEGV. Regards, Anthony Liguori > console_loop(spty, xs, path); > - restore_term(STDIN_FILENO, &attr); > > free(path); > free(dom_path); > -- > 1.7.10.4 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |