From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TS6Az-0005Tm-NY for qemu-devel@nongnu.org; Sat, 27 Oct 2012 09:11:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TS6Ay-0003ql-Oa for qemu-devel@nongnu.org; Sat, 27 Oct 2012 09:11:45 -0400 Received: from isrv.corpit.ru ([86.62.121.231]:47927) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TS6Ay-0003qh-HE for qemu-devel@nongnu.org; Sat, 27 Oct 2012 09:11:44 -0400 Message-ID: <508BDD8D.60402@msgid.tls.msk.ru> Date: Sat, 27 Oct 2012 17:11:41 +0400 From: Michael Tokarev MIME-Version: 1.0 References: <1348584532-21914-1-git-send-email-mjt@msgid.tls.msk.ru> <876271ol4w.fsf@codemonkey.ws> <5062AA0C.60303@msgid.tls.msk.ru> <5062BA23.705@msgid.tls.msk.ru> <87ehloj3rr.fsf@codemonkey.ws> <50631789.8040209@msgid.tls.msk.ru> <508BC420.8000202@msgid.tls.msk.ru> <508BD064.9080505@msgid.tls.msk.ru> <508BD9CA.2050508@msgid.tls.msk.ru> In-Reply-To: <508BD9CA.2050508@msgid.tls.msk.ru> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] stop using stdio for monitor/serial/etc with -daemonize List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: Peter Maydell , Hitoshi Mitake , qemu-devel@nongnu.org, Anthony Liguori , Stefan Hajnoczi 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