[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] stop using stdio for monitor/serial/etc with
From: |
Michael Tokarev |
Subject: |
Re: [Qemu-devel] [PATCH v2] stop using stdio for monitor/serial/etc with -daemonize |
Date: |
Sat, 27 Oct 2012 17:11:41 +0400 |
User-agent: |
Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.9) Gecko/20121015 Icedove/10.0.9 |
On 27.10.2012 16:55, Michael Tokarev wrote:
> On 27.10.2012 16:48, Blue Swirl wrote:
> []
>>> I'd rather have -nographic work with -daemonize, since the
>>> alternative - shown in the patch comment - is rather long and
>>> it is easy to forget to "nullify" some option, while -nographic
>>> can do that easy and it is convinient, but if people dislikes
>>> such natural and easy-for-the-user solutions, I wont insist.
>>
>> Instead of checking just for -nographic or -curses, can we forbid use
>> of any stdio chardev?
>
> I think that'll be quite a bit more difficult. Sure, say,
>
> -serial stdio -daemonize
>
> now has the same problem as original
>
> -nographic -daemonize.
>
> It is just now after you mentioned it I realized this omission.
> And it is exactly the same thing actually - we initialize
> stdio for the serial port, in both cases, and it switches
> the tty to raw mode.
>
> So this patch is insufficient indeed, we still have the
> same issue, and once -nographic -daemonize is disallowed,
> we've much better chances to hit this issue using -serial.
> Oh well.
>
> Hmm. Maybe init stdio chardev for something "else" in case
> of -nographic?
This, together with my previous patch, appears to work fine:
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -772,6 +772,10 @@ static CharDriverState *qemu_chr_open_stdio(QemuOpts *opts)
if (stdio_nb_clients >= STDIO_MAX_CLIENTS) {
return NULL;
}
+ if (is_daemonized()) {
+ error_report("cannot use stdio with -daemonize");
+ return NULL;
+ }
if (stdio_nb_clients == 0) {
old_fd0_flags = fcntl(0, F_GETFL);
tcgetattr (0, &oldtty);
(there's no need to add this to windows version, since
we don't daemonize on windows).
Thanks,
/mjt