From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975743; cv=none; d=zohomail.com; s=zohoarc; b=GYcUdu+a4Jss0G0+aZOnxNj+qw7+tLM3aiQztEOpBnM76ViGdcBSL7uy6u6oXJun5ptruQfjjKMoB3DltdfvEnMAP++nuRoE+lngXAFmuAwW7EebE0o0DWHWmkLJVImQPnlD30kqJbx+rTonEd8q1q0NSf/ubziiyEc/Sd+73ec= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975743; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=eEhvBeV1Dpu+Da7a9QNPVAT2Xcfq4MZGrIKNzwfp294=; b=MnBGkJMyaa329QFiZWOiDA3mcYapOBnGhWQEq+cCKTN7syc1E65cztzpBzkqe6Gf9spQK+sOzaCN99/gx/Od28MAflVO85Q0J4fbBCvdeneu7+0Tl2JomXudHd6yZN8okHeZ6Xl17wsuw73aq0ItalpPzjO4mQT285DtA12TSaY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975743769553.4607142651607; Fri, 2 Dec 2022 02:09:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12v8-0003VH-6y; Fri, 02 Dec 2022 05:05:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12v3-0003U2-A3 for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12v1-0002F6-FJ for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:21 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-39-yrPOn9MqONu7TAYDSeNvsw-1; Fri, 02 Dec 2022 05:05:16 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 651C8185A7AA; Fri, 2 Dec 2022 10:05:16 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2AB37477F55; Fri, 2 Dec 2022 10:05:16 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id E38CA21E6930; Fri, 2 Dec 2022 11:05:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975518; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eEhvBeV1Dpu+Da7a9QNPVAT2Xcfq4MZGrIKNzwfp294=; b=BhHnkfrzshuExzGMVp5UsM/A79zMhhVWrk2G+0h/k0JTevztgIKHUnK87AOuxNcNJvTOKE 0YUELjBBRHCYa89sMrclFGs5EQ5p84+jxXYm8PEYRS/z9yBi6FCr3OtaITW7Tc+ii2RuYf waZhglxcnVt1eqFIwPtiTh1CyzjgnO4= X-MC-Unique: yrPOn9MqONu7TAYDSeNvsw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 01/14] ui: Check numeric part of expire_password argument @time properly Date: Fri, 2 Dec 2022 11:04:59 +0100 Message-Id: <20221202100512.4161901-2-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975744464100003 When argument @time isn't 'now' or 'never', we parse it as an integer, optionally prefixed with '+'. If parsing fails, we silently assume zero. Report an error and fail instead. While there, use qemu_strtou64() instead of strtoull() so checkpatch.pl won't complain. Aside: encoding numbers in strings is bad QMP practice. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- monitor/qmp-cmds.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index 81c8fdadf8..054d7648b1 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -205,15 +205,28 @@ void qmp_expire_password(ExpirePasswordOptions *opts,= Error **errp) time_t when; int rc; const char *whenstr =3D opts->time; + const char *numstr =3D NULL; + uint64_t num; =20 if (strcmp(whenstr, "now") =3D=3D 0) { when =3D 0; } else if (strcmp(whenstr, "never") =3D=3D 0) { when =3D TIME_MAX; } else if (whenstr[0] =3D=3D '+') { - when =3D time(NULL) + strtoull(whenstr+1, NULL, 10); + when =3D time(NULL); + numstr =3D whenstr + 1; } else { - when =3D strtoull(whenstr, NULL, 10); + when =3D 0; + numstr =3D whenstr; + } + + if (numstr) { + if (qemu_strtou64(numstr, NULL, 10, &num) < 0) { + error_setg(errp, "Parameter 'time' doesn't take value '%s'", + whenstr); + return; + } + when +=3D num; } =20 if (opts->protocol =3D=3D DISPLAY_PROTOCOL_SPICE) { --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975621; cv=none; d=zohomail.com; s=zohoarc; b=KgvpOhhe/5uB5HcxvkeKC74mZ7FQRy4NYiThIqIxpp9ayJmEWcI7zM8nE92z3AJn90IdCQW99Mwd0KcxIhHTbEddOQJVgThLiELKSCXtM9M/MbFZA1jG+6dstoNyHjvqr6duY3aewPBYnuQU5Aq1W+kFiD3BJbR/3NVzlAbK4SU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975621; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ReZOwY/3InolmwGT9uwzD1VKwWejEa2KzyLVlwIGrxY=; b=elf9LoceaSZYGV+5T8TcolIR6v6FZ96TVAGbNxwzO05gqlTzIoUB4xlJJsvjGByLcxMKNnN4RIg24nn5dxU4iJuWSg26BTf2/cIpaO5uMfH4Fh0fnfKarHs7aAIT9CfxGa8pVRGNBCNBx7CHdGyTzvBpyFXs+qyPFta59h61+zo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975621515794.2255813933218; Fri, 2 Dec 2022 02:07:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vB-0003WK-1c; Fri, 02 Dec 2022 05:05:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12v5-0003UL-66 for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:23 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12v2-0002Fc-IF for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:22 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-554-JxH9YVkKMR2fh8tzJFDsMw-1; Fri, 02 Dec 2022 05:05:16 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6BED42A2AD74; Fri, 2 Dec 2022 10:05:16 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2AAB540C8468; Fri, 2 Dec 2022 10:05:16 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id E5EA121E6936; Fri, 2 Dec 2022 11:05:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ReZOwY/3InolmwGT9uwzD1VKwWejEa2KzyLVlwIGrxY=; b=KlzilgQ+3IucEr3msNWocokJYq2Wmixw4BKTEVLBU3pqse0WRCg/w0/1IPrbj06+qQYTtB iAXoE4PYr2qQqnPOqlCf7FLPXNGBAj//Ca4/0XBdiYwTQiDhancw4MUWMCY3FMBg+EWybK iAn84IC4WbDbUKwNHwQTMSBVuEbPxoM= X-MC-Unique: JxH9YVkKMR2fh8tzJFDsMw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 02/14] ui: Fix silent truncation of numeric keys in HMP sendkey Date: Fri, 2 Dec 2022 11:05:00 +0100 Message-Id: <20221202100512.4161901-3-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975623293100005 Keys are int. HMP sendkey assigns them from the value strtoul(), silently truncating values greater than INT_MAX. Fix to reject them. While there, use qemu_strtoul() instead of strtoul() so checkpatch.pl won't complain. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- monitor/hmp-cmds.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 01b789a79e..a7c9ae2520 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1666,8 +1666,13 @@ void hmp_sendkey(Monitor *mon, const QDict *qdict) v =3D g_malloc0(sizeof(*v)); =20 if (strstart(keys, "0x", NULL)) { - char *endp; - int value =3D strtoul(keys, &endp, 0); + const char *endp; + unsigned long value; + + if (qemu_strtoul(keys, &endp, 0, &value) < 0 + || value >=3D INT_MAX) { + goto err_out; + } assert(endp <=3D keys + keyname_len); if (endp !=3D keys + keyname_len) { goto err_out; --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975584; cv=none; d=zohomail.com; s=zohoarc; b=i7pfkTQ21/olG5RB8GrQbwEXC8P4rMH0zetQchKoPe7Zcrurba4uEs9ioQPychdAPZgG9/+YJLQAbGNGcyse4oRX9pe62CPL57HGlW+xB7omDbp/yReQLeuthpxQgOgoeIcAtLGfDcyZzMijwHGEdxWIe/TDOLxqbyKK74rYdoM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975584; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=llYHbZmmPYkf4oDEZDWTt47ksm3fHqvncNaaqJM+ynY=; b=MwxAICSpXapd+lF3vkfPlDUMbATxAkfPZEXtbf1uIKK4YK52J86e/5JtA/N25qPYC1nvfA+5Ka/8dx5cqPoFmf94rRDG8C05H67e9q+Eo/yW5LPJ3o6KmusFSlxp69FIcUUo9x2GGHk+x7gEO1Yy8yiv7i685lw15xKCFzkQjII= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975584339661.391289639907; Fri, 2 Dec 2022 02:06:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12v5-0003Uk-TQ; Fri, 02 Dec 2022 05:05:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12v3-0003U1-5h for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12v1-0002F5-A1 for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:20 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-235-2mU0y81-N66o7HxZ2lwKUw-1; Fri, 02 Dec 2022 05:05:16 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5C929811E84; Fri, 2 Dec 2022 10:05:16 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2A892414A815; Fri, 2 Dec 2022 10:05:16 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id E84B021E688F; Fri, 2 Dec 2022 11:05:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975517; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=llYHbZmmPYkf4oDEZDWTt47ksm3fHqvncNaaqJM+ynY=; b=Clg5tIzBrgG4K9gXM48nT1ZG05iCsC1W34g5N2laJZrr0IYvhDWSkQswfVaxuRqkBLLJ3q qwNwZUqV2E1ozbZHDcvLnTt/2kBDleYCuuDQnhGPwO8POFhog+4Ia4kdPgDEKCrNrI2bXp EaTA9ZiKHnuZqO4c4cw+BL7bEY5NdpE= X-MC-Unique: 2mU0y81-N66o7HxZ2lwKUw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 03/14] ui/spice: Require spice-protocol >= 0.14.0 Date: Fri, 2 Dec 2022 11:05:01 +0100 Message-Id: <20221202100512.4161901-4-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975585253100001 Content-Type: text/plain; charset="utf-8" Version 0.14.0 is now old enough to have made it into the major distributions: Debian 11: 0.14.3 RHEL-8: 0.14.2 FreeBSD (ports): 0.14.4 Fedora 35: 0.14.0 Ubuntu 20.04: 0.14.0 OpenSUSE Leap 15.3: 0.14.3 Requiring it lets us drop two version checks in ui/vdagent.c. It also enables the next commit. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- meson.build | 2 +- ui/vdagent.c | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 5c6b5a1c75..9f27c5cea3 100644 --- a/meson.build +++ b/meson.build @@ -740,7 +740,7 @@ endif =20 spice_protocol =3D not_found if not get_option('spice_protocol').auto() or have_system - spice_protocol =3D dependency('spice-protocol', version: '>=3D0.12.3', + spice_protocol =3D dependency('spice-protocol', version: '>=3D0.14.0', required: get_option('spice_protocol'), method: 'pkg-config', kwargs: static_kwargs) endif diff --git a/ui/vdagent.c b/ui/vdagent.c index 4bf50f0c4d..1f51a78da1 100644 --- a/ui/vdagent.c +++ b/ui/vdagent.c @@ -87,9 +87,7 @@ static const char *cap_name[] =3D { [VD_AGENT_CAP_MONITORS_CONFIG_POSITION] =3D "monitors-config-pos= ition", [VD_AGENT_CAP_FILE_XFER_DISABLED] =3D "file-xfer-disabled", [VD_AGENT_CAP_FILE_XFER_DETAILED_ERRORS] =3D "file-xfer-detailed-= errors", -#if CHECK_SPICE_PROTOCOL_VERSION(0, 14, 0) [VD_AGENT_CAP_GRAPHICS_DEVICE_INFO] =3D "graphics-device-inf= o", -#endif #if CHECK_SPICE_PROTOCOL_VERSION(0, 14, 1) [VD_AGENT_CAP_CLIPBOARD_NO_RELEASE_ON_REGRAB] =3D "clipboard-no-releas= e-on-regrab", [VD_AGENT_CAP_CLIPBOARD_GRAB_SERIAL] =3D "clipboard-grab-seri= al", @@ -112,9 +110,7 @@ static const char *msg_name[] =3D { [VD_AGENT_CLIENT_DISCONNECTED] =3D "client-disconnected", [VD_AGENT_MAX_CLIPBOARD] =3D "max-clipboard", [VD_AGENT_AUDIO_VOLUME_SYNC] =3D "audio-volume-sync", -#if CHECK_SPICE_PROTOCOL_VERSION(0, 14, 0) [VD_AGENT_GRAPHICS_DEVICE_INFO] =3D "graphics-device-info", -#endif }; =20 static const char *sel_name[] =3D { --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975626; cv=none; d=zohomail.com; s=zohoarc; b=lgo5R24Av1a5oqAqYrNToBpo6+84/tLCCmiS+KjGXfPgigfFAi0rXQ8jPjf7ya1bYSWpekSgkO4UJLPScyPiM4MLuIIGZKkjt0R6NdbpnW3PCQ+nWmJZpm2aU4W412l15pFbO9JgMs2vGj61lyks5lonZlv1w8eu1Ndhv28gOBo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975626; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Cr/IYj3mjE/aHUSid9+YdaoMQzgu194VeyuDMg7Ubr8=; b=icTW5FsDm2yaCZxcHU0WeQ/rZn0inrzgoyoPhnReHkOoOzH371ypRzrwKWA4fPN5u+L47zlro9biYXy3LCPeDb12XsFoCqjH2YRg7PK3wsy22w2OZSc6mLOg3vxEIbR6SswkAUGC0WJe58xAJfasGUaOrBfwQK4UGaMjGF9MxGQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975626076518.823516594002; Fri, 2 Dec 2022 02:07:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12v8-0003VL-7i; Fri, 02 Dec 2022 05:05:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12v5-0003UI-5U for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:23 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12v2-0002Fn-N5 for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:22 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-554-jABJsE_nMvOjtcwLisBSow-1; Fri, 02 Dec 2022 05:05:16 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5D92A3C025BC; Fri, 2 Dec 2022 10:05:16 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2AC1BC1908B; Fri, 2 Dec 2022 10:05:16 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id EAC1D21E6681; Fri, 2 Dec 2022 11:05:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975520; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Cr/IYj3mjE/aHUSid9+YdaoMQzgu194VeyuDMg7Ubr8=; b=RXMo33+O7nWYEzJ50BbkqGpNnbyB2hrRt2A02UZ+n4MA2JZNI/23caBJmBODOpTsmFuBgW lsK5RH4W5M6iAPxkDHT7cXY/xuSJWbdvO3+vgjQqOP00T+aoSSYHZ2q+L66B5WEBJwIboN wkTTACrLIiYk02gr+XErDWT/MfeMVV8= X-MC-Unique: jABJsE_nMvOjtcwLisBSow-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 04/14] Revert "hmp: info spice: take out webdav" Date: Fri, 2 Dec 2022 11:05:02 +0100 Message-Id: <20221202100512.4161901-5-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975627296100008 Content-Type: text/plain; charset="utf-8" This reverts commit 7c6044a94e52db8aef9a71d616c7a0914adb71ab. We had to take it out because SPICE_CHANNEL_WEBDAV requires spice-protocol 0.12.7, but we had only 0.12.3. We have 0.14.0 now, so put it back in. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- monitor/hmp-cmds.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index a7c9ae2520..7360ed71a6 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -626,12 +626,7 @@ void hmp_info_spice(Monitor *mon, const QDict *qdict) [SPICE_CHANNEL_SMARTCARD] =3D "smartcard", [SPICE_CHANNEL_USBREDIR] =3D "usbredir", [SPICE_CHANNEL_PORT] =3D "port", -#if 0 - /* minimum spice-protocol is 0.12.3, webdav was added in 0.12.7, - * no easy way to #ifdef (SPICE_CHANNEL_* is a enum). Disable - * as quick fix for build failures with older versions. */ [SPICE_CHANNEL_WEBDAV] =3D "webdav", -#endif }; =20 info =3D qmp_query_spice(NULL); --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975905; cv=none; d=zohomail.com; s=zohoarc; b=Nkk6k1r0U7dS7KO6N5+dQm/DAYoRrEwgYRjSYNk70ggIOfuW/pmh8d0UO93IssVjVMVRV9fDPviZJkWpgvOSth8qBQN+ZzHXPVsz4AP6IYDPJDvye2Yt2XOa0ZFronaP/SzlBSMxAcyMRSefUKzA/KayoEHnolsk0pe2fCz/d68= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975905; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=z4PDqlhoRW2lsH1hhO4JHqcnMiE1oK07ZcO4rw4v3ss=; b=eXi6fDzGyoFSCoGCNTUQPO2az9lzSJbe7YTD+MH4SsVLZ6GyCaQu+gItj345OKUYwUZmbKAYZElK/oJjTYrJOColuMXWVhGby0W48gTVCK054Je7Ggytm59IS+UFok7yYW79/bkn63mfGbfjgDBTuzotRu9ubOT2VAvXFzvOxN8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975904995259.8677960428089; Fri, 2 Dec 2022 02:11:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12va-0003ik-Bp; Fri, 02 Dec 2022 05:05:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vT-0003ei-58 for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:47 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vP-0002QH-VJ for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:45 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-304-NXe7UvEjOXq3_o5xmTQNaw-1; Fri, 02 Dec 2022 05:05:40 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CCEF786F14D; Fri, 2 Dec 2022 10:05:34 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5D71F414A809; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id ED12621E65C5; Fri, 2 Dec 2022 11:05:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975543; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=z4PDqlhoRW2lsH1hhO4JHqcnMiE1oK07ZcO4rw4v3ss=; b=EB+8x8ndDXvgwazCQVdJ6Pkjf87t6WRW1Jnmey2jYANtsB+XfJncEhhdXMYQ4j60Gb6p++ vvrjEUHmmoGc3F0bZgnreDlcvpfaoJcoYb7N4mLKdSkWgHnOcopmjBHJ8nTikKuYFiZrP7 GL7+3FjuEs7iPcD6VhmKqph4vI9XFdc= X-MC-Unique: NXe7UvEjOXq3_o5xmTQNaw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 05/14] ui/spice: Require spice-server >= 0.14.0 Date: Fri, 2 Dec 2022 11:05:03 +0100 Message-Id: <20221202100512.4161901-6-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975907163100005 Content-Type: text/plain; charset="utf-8" Version 0.14.0 is now old enough to have made it into the major distributions: Debian 11: 0.14.3 RHEL-8: 0.14.3 FreeBSD (ports): 0.15.0 Fedora 35: 0.15.0 Ubuntu 20.04: 0.14.2 OpenSUSE Leap 15.3: 0.14.3 Requiring it lets us drop a number of version checks. The next commit will clean up some more. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- meson.build | 2 +- hw/display/qxl.h | 2 -- include/ui/qemu-spice.h | 6 +----- include/ui/spice-display.h | 2 -- chardev/spice.c | 2 -- hw/display/qxl.c | 7 +------ 6 files changed, 3 insertions(+), 18 deletions(-) diff --git a/meson.build b/meson.build index 9f27c5cea3..31705f7fe9 100644 --- a/meson.build +++ b/meson.build @@ -746,7 +746,7 @@ if not get_option('spice_protocol').auto() or have_syst= em endif spice =3D not_found if not get_option('spice').auto() or have_system - spice =3D dependency('spice-server', version: '>=3D0.12.5', + spice =3D dependency('spice-server', version: '>=3D0.14.0', required: get_option('spice'), method: 'pkg-config', kwargs: static_kwargs) endif diff --git a/hw/display/qxl.h b/hw/display/qxl.h index e74de9579d..944e779615 100644 --- a/hw/display/qxl.h +++ b/hw/display/qxl.h @@ -100,9 +100,7 @@ struct PCIQXLDevice { QXLModes *modes; uint32_t rom_size; MemoryRegion rom_bar; -#if SPICE_SERVER_VERSION >=3D 0x000c06 /* release 0.12.6 */ uint16_t max_outputs; -#endif =20 /* vram pci bar */ uint64_t vram_size; diff --git a/include/ui/qemu-spice.h b/include/ui/qemu-spice.h index 21fe195e18..a7a1890b3f 100644 --- a/include/ui/qemu-spice.h +++ b/include/ui/qemu-spice.h @@ -34,13 +34,9 @@ int qemu_spice_add_display_interface(QXLInstance *qxlin,= QemuConsole *con); int qemu_spice_migrate_info(const char *hostname, int port, int tls_port, const char *subject); =20 -#if !defined(SPICE_SERVER_VERSION) || (SPICE_SERVER_VERSION < 0xc06) -#define SPICE_NEEDS_SET_MM_TIME 1 -#else #define SPICE_NEEDS_SET_MM_TIME 0 -#endif =20 -#if defined(SPICE_SERVER_VERSION) && (SPICE_SERVER_VERSION >=3D 0x000f00) +#if SPICE_SERVER_VERSION >=3D 0x000f00 /* release 0.15.0 */ #define SPICE_HAS_ATTACHED_WORKER 1 #else #define SPICE_HAS_ATTACHED_WORKER 0 diff --git a/include/ui/spice-display.h b/include/ui/spice-display.h index e271e011da..5aa13664d6 100644 --- a/include/ui/spice-display.h +++ b/include/ui/spice-display.h @@ -28,11 +28,9 @@ #include "ui/console.h" =20 #if defined(CONFIG_OPENGL) && defined(CONFIG_GBM) -# if SPICE_SERVER_VERSION >=3D 0x000d01 /* release 0.13.1 */ # define HAVE_SPICE_GL 1 # include "ui/egl-helpers.h" # include "ui/egl-context.h" -# endif #endif =20 #define NUM_MEMSLOTS 8 diff --git a/chardev/spice.c b/chardev/spice.c index bbffef4913..e843d961a7 100644 --- a/chardev/spice.c +++ b/chardev/spice.c @@ -98,9 +98,7 @@ static SpiceCharDeviceInterface vmc_interface =3D { .write =3D vmc_write, .read =3D vmc_read, .event =3D vmc_event, -#if SPICE_SERVER_VERSION >=3D 0x000c06 .flags =3D SPICE_CHAR_DEVICE_NOTIFY_WRITABLE, -#endif }; =20 =20 diff --git a/hw/display/qxl.c b/hw/display/qxl.c index 5b10f697f1..5b3cd33066 100644 --- a/hw/display/qxl.c +++ b/hw/display/qxl.c @@ -260,8 +260,7 @@ static void qxl_spice_monitors_config_async(PCIQXLDevic= e *qxl, int replay) QXL_COOKIE_TYPE_POST_LOAD_MONITORS_CONFIG, 0)); } else { -/* >=3D release 0.12.6, < release 0.14.2 */ -#if SPICE_SERVER_VERSION >=3D 0x000c06 && SPICE_SERVER_VERSION < 0x000e02 +#if SPICE_SERVER_VERSION < 0x000e02 /* release 0.14.2 */ if (qxl->max_outputs) { spice_qxl_set_max_monitors(&qxl->ssd.qxl, qxl->max_outputs); } @@ -1086,12 +1085,10 @@ static int interface_client_monitors_config(QXLInst= ance *sin, return 1; } =20 -#if SPICE_SERVER_VERSION >=3D 0x000c06 /* release 0.12.6 */ /* limit number of outputs based on setting limit */ if (qxl->max_outputs && qxl->max_outputs <=3D max_outputs) { max_outputs =3D qxl->max_outputs; } -#endif =20 config_changed =3D qxl_rom_monitors_config_changed(rom, monitors_config, @@ -2463,9 +2460,7 @@ static Property qxl_properties[] =3D { DEFINE_PROP_UINT32("vram64_size_mb", PCIQXLDevice, vram_size_mb, -= 1), DEFINE_PROP_UINT32("vgamem_mb", PCIQXLDevice, vgamem_size_mb, 16), DEFINE_PROP_INT32("surfaces", PCIQXLDevice, ssd.num_surfaces, 1024= ), -#if SPICE_SERVER_VERSION >=3D 0x000c06 /* release 0.12.6 */ DEFINE_PROP_UINT16("max_outputs", PCIQXLDevice, max_outputs, 0), -#endif DEFINE_PROP_UINT32("xres", PCIQXLDevice, xres, 0), DEFINE_PROP_UINT32("yres", PCIQXLDevice, yres, 0), DEFINE_PROP_BOOL("global-vmstate", PCIQXLDevice, vga.global_vmstat= e, false), --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975862; cv=none; d=zohomail.com; s=zohoarc; b=TBr1RSJhNRzIfrtilqXGzlYMGYTYiWmPlyaZekbOUL0LZsPDRk1ldm10dnxm1s4EWdTOtiVAzk/LwDRGNiAP0SJ6QFsXpj65WCVz2MunQOcFiOkeNL+2G3CSXtA11gVsIXmk+plo8GuocE2cBttlmSpYtTHLvlMAHVlpvGppKFU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975862; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tdHiN5p5uQPdx6OgCFKzsLa3fGApduXbZwDhKr895Y8=; b=UUzjchc8oeRhWf88QgQ6N5v0fWtuil6WrH0LwJ1WCfKVK4I2HSwK9dEumw9u4lO3DnoDMudsQ0sRRnoj2+JTKMoMSHH8c8AmqVURQkj5cd2mvXZbHrzQFb1dzgvP9e4Ac7IV+Ohon3Fp/CoeEuMlTYnUJBMBusGOGyQdRLlPc6c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975862412510.43197358163275; Fri, 2 Dec 2022 02:11:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vX-0003hf-2m; Fri, 02 Dec 2022 05:05:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vQ-0003ck-SU for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vP-0002Pt-2R for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:44 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-533-Q9ZxBKqwPoGYTYlQioRErw-1; Fri, 02 Dec 2022 05:05:39 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A40131C087B1; Fri, 2 Dec 2022 10:05:33 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5D4DA1410DDA; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id EF5B421E65C6; Fri, 2 Dec 2022 11:05:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tdHiN5p5uQPdx6OgCFKzsLa3fGApduXbZwDhKr895Y8=; b=OHhkoIr2JbBwpAjXknJTmuIitNBH4W9qEmtLYlytOD4p3yoCtLFTP/jPUJZphIt8fPzBgW mraZ33RLqURba3B+ZVyhvbDhwKwTDYZVsUKm0KkLR6YIjEdy+53pmJF6vQ6eXW/12m/sRZ g6bhPBpWI3Q9Iwnz1CchdTY8Zs5KOLE= X-MC-Unique: Q9ZxBKqwPoGYTYlQioRErw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 06/14] ui/spice: QXLInterface method set_mm_time() is now dead, drop Date: Fri, 2 Dec 2022 11:05:04 +0100 Message-Id: <20221202100512.4161901-7-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975862695100001 Content-Type: text/plain; charset="utf-8" SPICE_NEEDS_SET_MM_TIME is now always off. Bury the dead code. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/ui/qemu-spice.h | 2 -- hw/display/qxl.c | 19 ------------------- ui/spice-display.c | 10 ---------- hw/display/trace-events | 1 - 4 files changed, 32 deletions(-) diff --git a/include/ui/qemu-spice.h b/include/ui/qemu-spice.h index a7a1890b3f..b7d493742c 100644 --- a/include/ui/qemu-spice.h +++ b/include/ui/qemu-spice.h @@ -34,8 +34,6 @@ int qemu_spice_add_display_interface(QXLInstance *qxlin, = QemuConsole *con); int qemu_spice_migrate_info(const char *hostname, int port, int tls_port, const char *subject); =20 -#define SPICE_NEEDS_SET_MM_TIME 0 - #if SPICE_SERVER_VERSION >=3D 0x000f00 /* release 0.15.0 */ #define SPICE_HAS_ATTACHED_WORKER 1 #else diff --git a/hw/display/qxl.c b/hw/display/qxl.c index 5b3cd33066..82eafdcc68 100644 --- a/hw/display/qxl.c +++ b/hw/display/qxl.c @@ -540,22 +540,6 @@ static void interface_set_compression_level(QXLInstanc= e *sin, int level) qxl_rom_set_dirty(qxl); } =20 -#if SPICE_NEEDS_SET_MM_TIME -static void interface_set_mm_time(QXLInstance *sin, uint32_t mm_time) -{ - PCIQXLDevice *qxl =3D container_of(sin, PCIQXLDevice, ssd.qxl); - - if (!qemu_spice_display_is_running(&qxl->ssd)) { - return; - } - - trace_qxl_interface_set_mm_time(qxl->id, mm_time); - qxl->shadow_rom.mm_clock =3D cpu_to_le32(mm_time); - qxl->rom->mm_clock =3D cpu_to_le32(mm_time); - qxl_rom_set_dirty(qxl); -} -#endif - static void interface_get_init_info(QXLInstance *sin, QXLDevInitInfo *info) { PCIQXLDevice *qxl =3D container_of(sin, PCIQXLDevice, ssd.qxl); @@ -1142,9 +1126,6 @@ static const QXLInterface qxl_interface =3D { #endif =20 .set_compression_level =3D interface_set_compression_level, -#if SPICE_NEEDS_SET_MM_TIME - .set_mm_time =3D interface_set_mm_time, -#endif .get_init_info =3D interface_get_init_info, =20 /* the callbacks below are called from spice server thread context */ diff --git a/ui/spice-display.c b/ui/spice-display.c index 494168e7fe..0616a6982f 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -517,13 +517,6 @@ static void interface_set_compression_level(QXLInstanc= e *sin, int level) /* nothing to do */ } =20 -#if SPICE_NEEDS_SET_MM_TIME -static void interface_set_mm_time(QXLInstance *sin, uint32_t mm_time) -{ - /* nothing to do */ -} -#endif - static void interface_get_init_info(QXLInstance *sin, QXLDevInitInfo *info) { SimpleSpiceDisplay *ssd =3D container_of(sin, SimpleSpiceDisplay, qxl); @@ -715,9 +708,6 @@ static const QXLInterface dpy_interface =3D { .attache_worker =3D interface_attach_worker, #endif .set_compression_level =3D interface_set_compression_level, -#if SPICE_NEEDS_SET_MM_TIME - .set_mm_time =3D interface_set_mm_time, -#endif .get_init_info =3D interface_get_init_info, =20 /* the callbacks below are called from spice server thread context */ diff --git a/hw/display/trace-events b/hw/display/trace-events index 0c0ffcbe42..2336a0ca15 100644 --- a/hw/display/trace-events +++ b/hw/display/trace-events @@ -55,7 +55,6 @@ virtio_gpu_fence_ctrl(uint64_t fence, uint32_t type) "fen= ce 0x%" PRIx64 ", type virtio_gpu_fence_resp(uint64_t fence) "fence 0x%" PRIx64 =20 # qxl.c -disable qxl_interface_set_mm_time(int qid, uint32_t mm_time) "%d %d" disable qxl_io_write_vga(int qid, const char *mode, uint32_t addr, uint32_= t val) "%d %s addr=3D%u val=3D%u" qxl_create_guest_primary(int qid, uint32_t width, uint32_t height, uint64_= t mem, uint32_t format, uint32_t position) "%d %ux%u mem=3D0x%" PRIx64 " %u= ,%u" qxl_create_guest_primary_rest(int qid, int32_t stride, uint32_t type, uint= 32_t flags) "%d %d,%d,%d" --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975625; cv=none; d=zohomail.com; s=zohoarc; b=lKrCxYZvzTZxDVfG//WHF6l+xN5W6lfwaKrau0EaO2TZvJGP8wjLkWkR3ToZmQgV5Rqpcg8ex59Q+gL22l/XLfd7ax93t8oDNwi5XLqGgFgCm7HC5ib599Kru0wcYqTPSZPhthltkkzg0IWRjs27TVckXDcs2B0hdtXOnOwftHE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975625; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7CVXwdteIovPTLIogZPCBl18R8yiuwemTpoQlJQHMe8=; b=UMbSsJ2aRSLJufyjAHJkihLarZweSKJHFgknoIWjHlJl7EKcgkKSfTz/JkIZ3cGmj4+E29tkS0Eu5uKTNefj6XWeeFF2YTzMYuHH8D3mNalC5ypeTsfp4Wx0JXg9JlPux6JcPKHa92kR4X4OVdqy+GlxH2p+3cTQTK5E6WkcUdM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975625821470.56335718840387; Fri, 2 Dec 2022 02:07:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vW-0003hE-Gh; Fri, 02 Dec 2022 05:05:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vQ-0003cf-Et for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vO-0002Pg-FX for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:44 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-26-b5gjWjrPNkmpiWtt2NSAig-1; Fri, 02 Dec 2022 05:05:38 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9B74A38041FB; Fri, 2 Dec 2022 10:05:33 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5D5C22166B2A; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id F1C1121E65C7; Fri, 2 Dec 2022 11:05:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7CVXwdteIovPTLIogZPCBl18R8yiuwemTpoQlJQHMe8=; b=Qz2BWjIYZIV5USY6XSzCfa7UsZdjgTuBfJAzYoyQX3LjFrmbnUUB5iPEGTX0W3Vl1umRoy JlaMTrw8+asyhYQ/Qxdsv+J9osWD3CXjPNfJPamrvfKmeMzu18ajr87oy6OUWcNLUqzwdy OX22JAINIf9hr0hjg0SfHDjuwl2U71U= X-MC-Unique: b5gjWjrPNkmpiWtt2NSAig-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 07/14] ui/spice: Give hmp_info_spice()'s channel_names[] static linkage Date: Fri, 2 Dec 2022 11:05:05 +0100 Message-Id: <20221202100512.4161901-8-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975627287100007 Suggested-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- monitor/hmp-cmds.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 7360ed71a6..8eb9c19b3a 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -615,7 +615,7 @@ void hmp_info_spice(Monitor *mon, const QDict *qdict) SpiceChannelList *chan; SpiceInfo *info; const char *channel_name; - const char * const channel_names[] =3D { + static const char *const channel_names[] =3D { [SPICE_CHANNEL_MAIN] =3D "main", [SPICE_CHANNEL_DISPLAY] =3D "display", [SPICE_CHANNEL_INPUTS] =3D "inputs", --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975689; cv=none; d=zohomail.com; s=zohoarc; b=U5n70lpS8iYnIxk+P6fOf+3q3fhP6VFALS6d59ZNPZ0JTIWjhaqwq4JHejcsogUB+Ya6aB1ZtaPgGiaiVQkd9FFf1vxEcnGocOPpodZoPeApRe9bFmjNWcU/EOPsFpeF/jc+TJ9CmbbwO3xZcMVNvGPvL51kG5PgGoMQ7Y6aUf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975689; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=u107fbHxKmp2QlsQnjm2Q+ycWiXrmcXBWsNurKFxtIk=; b=mTJYLCS2DJec6LJz3Uyov4lvZXSc/EHPvPS8cRpyBaJdeAcetyBY6ZSjMcMRJxmKKqTVmBqduWbjxhCCM2P+mZaWq9XnpUgGh4aV3bgKpMUi7ot9bkBd32kw31xMYYX31uxyIuirzzo5jPSP8/7wL6/s0V0Uqibljol3lHjTp4g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975689831123.08911246859384; Fri, 2 Dec 2022 02:08:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vY-0003iE-HY; Fri, 02 Dec 2022 05:05:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vQ-0003cY-7I for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vN-0002PD-3s for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:43 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-144-rJneRopgNT2QOVit8uVxBg-1; Fri, 02 Dec 2022 05:05:38 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 97B70894E90; Fri, 2 Dec 2022 10:05:33 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5D757414A814; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 0019821E65C8; Fri, 2 Dec 2022 11:05:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975540; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u107fbHxKmp2QlsQnjm2Q+ycWiXrmcXBWsNurKFxtIk=; b=SlVgzifhqHkPwUX995bGz4zS4IaM4cY8/kIvRwyZKunMmflx37yJ72oMMZ4Vxxnmhs1orF EOBnxPwtE2/2yldTBXepNviTJHojjDATYk35nEqYIjkvhTsJPTbYq9zdTVbidj4MwweeSP i0q5wueSfayRFWBmvErnVyNAzlgJHMY= X-MC-Unique: rJneRopgNT2QOVit8uVxBg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 08/14] ui: Clean up a few things checkpatch.pl would flag later on Date: Fri, 2 Dec 2022 11:05:06 +0100 Message-Id: <20221202100512.4161901-9-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975691923100001 Fix a few style violations so that checkpatch.pl won't complain when I move this code. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- monitor/hmp-cmds.c | 7 ++++--- monitor/qmp-cmds.c | 21 +++++++++++---------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 8eb9c19b3a..86dde966ff 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -591,9 +591,10 @@ void hmp_info_vnc(Monitor *mon, const QDict *qdict) hmp_info_vnc_servers(mon, info->server); hmp_info_vnc_clients(mon, info->clients); if (!info->server) { - /* The server entry displays its auth, we only - * need to display in the case of 'reverse' connections - * where there's no server. + /* + * The server entry displays its auth, we only need to + * display in the case of 'reverse' connections where + * there's no server. */ hmp_info_vnc_authcrypt(mon, " ", info->auth, info->has_vencrypt ? &info->vencrypt : NULL= ); diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index 054d7648b1..a7c95e8e39 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -190,8 +190,10 @@ void qmp_set_password(SetPasswordOptions *opts, Error = **errp) error_setg(errp, QERR_INVALID_PARAMETER, "connected"); return; } - /* Note that setting an empty password will not disable login thro= ugh - * this interface. */ + /* + * Note that setting an empty password will not disable login + * through this interface. + */ rc =3D vnc_display_password(opts->u.vnc.display, opts->password); } =20 @@ -276,12 +278,10 @@ void qmp_add_client(const char *protocol, const char = *fdname, error_setg(errp, "spice failed to add client"); close(fd); } - return; #ifdef CONFIG_VNC } else if (strcmp(protocol, "vnc") =3D=3D 0) { skipauth =3D has_skipauth ? skipauth : false; vnc_display_add_client(NULL, fd, skipauth); - return; #endif #ifdef CONFIG_DBUS_DISPLAY } else if (strcmp(protocol, "@dbus-display") =3D=3D 0) { @@ -293,19 +293,20 @@ void qmp_add_client(const char *protocol, const char = *fdname, close(fd); return; } - return; #endif - } else if ((s =3D qemu_chr_find(protocol)) !=3D NULL) { + } else { + s =3D qemu_chr_find(protocol); + if (!s) { + error_setg(errp, "protocol '%s' is invalid", protocol); + close(fd); + return; + } if (qemu_chr_add_client(s, fd) < 0) { error_setg(errp, "failed to add client"); close(fd); return; } - return; } - - error_setg(errp, "protocol '%s' is invalid", protocol); - close(fd); } =20 =20 --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975905; cv=none; d=zohomail.com; s=zohoarc; b=TtoXVs3BGKWBFdHWrsAcd/rsa2+C/+TyG+d0w2Ju+Qt3MbRZDx7GMni0214tHt50U0sutjGcnyeT4IOeVSV4Cy5/nFg7WrrLNgJAoZhFox9kiVaUlEMqbHPi4Y+4byMOjwd7Kt+PkAFCO5PQY12xnA/+E73npgGksJt0RqzQmqY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975905; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bp8oSSyLacZ9baDFpu2XCfpfBM5iYUvXShif6Ti1aR4=; b=P/m0W4Vmh7sluBSX5oTe+ivTSJXkAR32e6CEUe8Cz53HCTqso2cqUfkZlQBNVrAJ5XvsXH8QZ1bIK2HbThMzQQ0W8735YuxEObzT1axAyrs7tKiq/pC3u2KShCirzssYiLkZggsbNptBijs0WLic7jkNhT2M2M9L/GwMLKczQQQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975905200976.3346268141819; Fri, 2 Dec 2022 02:11:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12va-0003im-Bv; Fri, 02 Dec 2022 05:05:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vR-0003dG-Fm for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:46 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vP-0002Q0-2f for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:45 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-138-gVO6WkW1Nde8SU63Ls3T_g-1; Fri, 02 Dec 2022 05:05:39 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B8EEA3C0DDC7; Fri, 2 Dec 2022 10:05:33 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6301B477F55; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 028F721E65C9; Fri, 2 Dec 2022 11:05:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bp8oSSyLacZ9baDFpu2XCfpfBM5iYUvXShif6Ti1aR4=; b=Tz4/GrjJzI06BvHNg780sIBVvv9DPLq6yRzna6uTdQnYNADljr8K71ldWWfv8lZSk84/lM GbP9hxn7MXAhdzYeE37Da2SRzZ4UiwqMxQQNDI2RXjKrIF6U02MDSdb5JmtZued/PeglBa PLFyG9PkTaMQsiJ0c/7SntkOOFO0l3M= X-MC-Unique: gVO6WkW1Nde8SU63Ls3T_g-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 09/14] ui: Move QMP commands from monitor to new ui/ui-qmp-cmds.c Date: Fri, 2 Dec 2022 11:05:07 +0100 Message-Id: <20221202100512.4161901-10-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975907104100003 This moves these commands from MAINTAINERS section "Human Monitor (HMP)" to "Graphics". Command add-client applies to socket character devices in addition to display devices. Move it anyway. Aside: the way @protocol character device IDs and display types is bad design. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- monitor/qmp-cmds.c | 118 --------------------------------------- ui/ui-qmp-cmds.c | 136 +++++++++++++++++++++++++++++++++++++++++++++ ui/meson.build | 1 + 3 files changed, 137 insertions(+), 118 deletions(-) create mode 100644 ui/ui-qmp-cmds.c diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index a7c95e8e39..1189f195ed 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -36,9 +36,7 @@ #include "qapi/qapi-commands-machine.h" #include "qapi/qapi-commands-misc.h" #include "qapi/qapi-commands-stats.h" -#include "qapi/qapi-commands-ui.h" #include "qapi/type-helpers.h" -#include "qapi/qmp/qerror.h" #include "exec/ramlist.h" #include "hw/mem/memory-device.h" #include "hw/acpi/acpi_dev_interface.h" @@ -172,89 +170,6 @@ void qmp_system_wakeup(Error **errp) qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER, errp); } =20 -void qmp_set_password(SetPasswordOptions *opts, Error **errp) -{ - int rc; - - if (opts->protocol =3D=3D DISPLAY_PROTOCOL_SPICE) { - if (!qemu_using_spice(errp)) { - return; - } - rc =3D qemu_spice.set_passwd(opts->password, - opts->connected =3D=3D SET_PASSWORD_ACTION_FAIL, - opts->connected =3D=3D SET_PASSWORD_ACTION_DISCONNECT); - } else { - assert(opts->protocol =3D=3D DISPLAY_PROTOCOL_VNC); - if (opts->connected !=3D SET_PASSWORD_ACTION_KEEP) { - /* vnc supports "connected=3Dkeep" only */ - error_setg(errp, QERR_INVALID_PARAMETER, "connected"); - return; - } - /* - * Note that setting an empty password will not disable login - * through this interface. - */ - rc =3D vnc_display_password(opts->u.vnc.display, opts->password); - } - - if (rc !=3D 0) { - error_setg(errp, "Could not set password"); - } -} - -void qmp_expire_password(ExpirePasswordOptions *opts, Error **errp) -{ - time_t when; - int rc; - const char *whenstr =3D opts->time; - const char *numstr =3D NULL; - uint64_t num; - - if (strcmp(whenstr, "now") =3D=3D 0) { - when =3D 0; - } else if (strcmp(whenstr, "never") =3D=3D 0) { - when =3D TIME_MAX; - } else if (whenstr[0] =3D=3D '+') { - when =3D time(NULL); - numstr =3D whenstr + 1; - } else { - when =3D 0; - numstr =3D whenstr; - } - - if (numstr) { - if (qemu_strtou64(numstr, NULL, 10, &num) < 0) { - error_setg(errp, "Parameter 'time' doesn't take value '%s'", - whenstr); - return; - } - when +=3D num; - } - - if (opts->protocol =3D=3D DISPLAY_PROTOCOL_SPICE) { - if (!qemu_using_spice(errp)) { - return; - } - rc =3D qemu_spice.set_pw_expire(when); - } else { - assert(opts->protocol =3D=3D DISPLAY_PROTOCOL_VNC); - rc =3D vnc_display_pw_expire(opts->u.vnc.display, when); - } - - if (rc !=3D 0) { - error_setg(errp, "Could not set password expire time"); - } -} - -#ifdef CONFIG_VNC -void qmp_change_vnc_password(const char *password, Error **errp) -{ - if (vnc_display_password(NULL, password) < 0) { - error_setg(errp, "Could not set password"); - } -} -#endif - void qmp_add_client(const char *protocol, const char *fdname, bool has_skipauth, bool skipauth, bool has_tls, bool t= ls, Error **errp) @@ -309,7 +224,6 @@ void qmp_add_client(const char *protocol, const char *f= dname, } } =20 - MemoryDeviceInfoList *qmp_query_memory_devices(Error **errp) { return qmp_memory_device_list(); @@ -348,38 +262,6 @@ MemoryInfo *qmp_query_memory_size_summary(Error **errp) return mem_info; } =20 -void qmp_display_reload(DisplayReloadOptions *arg, Error **errp) -{ - switch (arg->type) { - case DISPLAY_RELOAD_TYPE_VNC: -#ifdef CONFIG_VNC - if (arg->u.vnc.has_tls_certs && arg->u.vnc.tls_certs) { - vnc_display_reload_certs(NULL, errp); - } -#else - error_setg(errp, "vnc is invalid, missing 'CONFIG_VNC'"); -#endif - break; - default: - abort(); - } -} - -void qmp_display_update(DisplayUpdateOptions *arg, Error **errp) -{ - switch (arg->type) { - case DISPLAY_UPDATE_TYPE_VNC: -#ifdef CONFIG_VNC - vnc_display_update(&arg->u.vnc, errp); -#else - error_setg(errp, "vnc is invalid, missing 'CONFIG_VNC'"); -#endif - break; - default: - abort(); - } -} - static int qmp_x_query_rdma_foreach(Object *obj, void *opaque) { RdmaProvider *rdma; diff --git a/ui/ui-qmp-cmds.c b/ui/ui-qmp-cmds.c new file mode 100644 index 0000000000..c9f92caf1d --- /dev/null +++ b/ui/ui-qmp-cmds.c @@ -0,0 +1,136 @@ +/* + * QMP commands related to UI + * + * Copyright IBM, Corp. 2011 + * + * Authors: + * Anthony Liguori + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + * Contributions after 2012-01-13 are licensed under the terms of the + * GNU GPL, version 2 or (at your option) any later version. + */ + +#include "qemu/osdep.h" +#include "qapi/qapi-commands-ui.h" +#include "qapi/qmp/qerror.h" +#include "qemu/cutils.h" +#include "ui/console.h" +#include "ui/qemu-spice.h" + +void qmp_set_password(SetPasswordOptions *opts, Error **errp) +{ + int rc; + + if (opts->protocol =3D=3D DISPLAY_PROTOCOL_SPICE) { + if (!qemu_using_spice(errp)) { + return; + } + rc =3D qemu_spice.set_passwd(opts->password, + opts->connected =3D=3D SET_PASSWORD_ACTION_FAIL, + opts->connected =3D=3D SET_PASSWORD_ACTION_DISCONNECT); + } else { + assert(opts->protocol =3D=3D DISPLAY_PROTOCOL_VNC); + if (opts->connected !=3D SET_PASSWORD_ACTION_KEEP) { + /* vnc supports "connected=3Dkeep" only */ + error_setg(errp, QERR_INVALID_PARAMETER, "connected"); + return; + } + /* + * Note that setting an empty password will not disable login + * through this interface. + */ + rc =3D vnc_display_password(opts->u.vnc.display, opts->password); + } + + if (rc !=3D 0) { + error_setg(errp, "Could not set password"); + } +} + +void qmp_expire_password(ExpirePasswordOptions *opts, Error **errp) +{ + time_t when; + int rc; + const char *whenstr =3D opts->time; + const char *numstr =3D NULL; + uint64_t num; + + if (strcmp(whenstr, "now") =3D=3D 0) { + when =3D 0; + } else if (strcmp(whenstr, "never") =3D=3D 0) { + when =3D TIME_MAX; + } else if (whenstr[0] =3D=3D '+') { + when =3D time(NULL); + numstr =3D whenstr + 1; + } else { + when =3D 0; + numstr =3D whenstr; + } + + if (numstr) { + if (qemu_strtou64(numstr, NULL, 10, &num) < 0) { + error_setg(errp, "Parameter 'time' doesn't take value '%s'", + whenstr); + return; + } + when +=3D num; + } + + if (opts->protocol =3D=3D DISPLAY_PROTOCOL_SPICE) { + if (!qemu_using_spice(errp)) { + return; + } + rc =3D qemu_spice.set_pw_expire(when); + } else { + assert(opts->protocol =3D=3D DISPLAY_PROTOCOL_VNC); + rc =3D vnc_display_pw_expire(opts->u.vnc.display, when); + } + + if (rc !=3D 0) { + error_setg(errp, "Could not set password expire time"); + } +} + +#ifdef CONFIG_VNC +void qmp_change_vnc_password(const char *password, Error **errp) +{ + if (vnc_display_password(NULL, password) < 0) { + error_setg(errp, "Could not set password"); + } +} +#endif + +void qmp_display_reload(DisplayReloadOptions *arg, Error **errp) +{ + switch (arg->type) { + case DISPLAY_RELOAD_TYPE_VNC: +#ifdef CONFIG_VNC + if (arg->u.vnc.has_tls_certs && arg->u.vnc.tls_certs) { + vnc_display_reload_certs(NULL, errp); + } +#else + error_setg(errp, "vnc is invalid, missing 'CONFIG_VNC'"); +#endif + break; + default: + abort(); + } +} + +void qmp_display_update(DisplayUpdateOptions *arg, Error **errp) +{ + switch (arg->type) { + case DISPLAY_UPDATE_TYPE_VNC: +#ifdef CONFIG_VNC + vnc_display_update(&arg->u.vnc, errp); +#else + error_setg(errp, "vnc is invalid, missing 'CONFIG_VNC'"); +#endif + break; + default: + abort(); + } +} diff --git a/ui/meson.build b/ui/meson.build index c1b137bf33..9194ea335b 100644 --- a/ui/meson.build +++ b/ui/meson.build @@ -14,6 +14,7 @@ softmmu_ss.add(files( 'kbd-state.c', 'keymaps.c', 'qemu-pixman.c', + 'ui-qmp-cmds.c', 'util.c', )) if dbus_display --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975621; cv=none; d=zohomail.com; s=zohoarc; b=chHrPwMTfkzgEVWr5RkNDQn6E2HDi33QP16vJRzQwZgifVyG8zVz5D783iXUsUMXFzRFROtMS327wiI+FNTewgxz6fR6c2ni7X6zPySSoGnbSH3g2/WT7Rbst57nG7wsEp7Yf0VSzaHqt33Xlw42KiW5nGQdAWIjPGe6MY410BQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975621; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0HV5mvWNIk2ylyuBVFM7zdhoHBOVcuN1KTlTBXeqamI=; b=WrYBUHGiNwCiJhPXoTlkz4BGqo4KPQOSgdzBvkIn8HFb8Da66twRrAvlLnKmvlFMc0gE3oOjLEwC1JCiJzYiDJDRXIPRkiWw5gOhfyzFWpLbSQoRl7eF725uBFxzAvlKxCEvJ6VFEGd+k7f3sYMUDTkg6H40P7neVVizWPIayf8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975621256369.3598205971764; Fri, 2 Dec 2022 02:07:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vU-0003fu-IR; Fri, 02 Dec 2022 05:05:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vQ-0003cX-7A for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vN-0002PM-PS for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:43 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-138-gJYHh7NuNveAEN_nLwqRoA-1; Fri, 02 Dec 2022 05:05:39 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B9F9E1869A94; Fri, 2 Dec 2022 10:05:33 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 655602166BC0; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 04E4121E65CA; Fri, 2 Dec 2022 11:05:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0HV5mvWNIk2ylyuBVFM7zdhoHBOVcuN1KTlTBXeqamI=; b=XxPc4QUiC93EUexPZ6Sa15G1UTU7Kj8FT0Fy+9NIoAXbKpAu35FxHwPS7FMcAdyyM9+pO7 bKLkFA4JesC02wt0G6T2QYRMqYSbyurBTGoCyyQVlBtC9tilyTjfSNWkrPwCCcYo18XvmS Dww3Nlspsd4Bo0CoBZHFi0JJ22pi9RQ= X-MC-Unique: gJYHh7NuNveAEN_nLwqRoA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 10/14] ui: Factor out qmp_add_client() parts and move to ui/ui-qmp-cmds.c Date: Fri, 2 Dec 2022 11:05:08 +0100 Message-Id: <20221202100512.4161901-11-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975623319100006 Content-Type: text/plain; charset="utf-8" Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/monitor/qmp-helpers.h | 26 ++++++++++++ monitor/qmp-cmds.c | 74 ++++++++++++++++------------------- ui/ui-qmp-cmds.c | 41 +++++++++++++++++++ 3 files changed, 100 insertions(+), 41 deletions(-) create mode 100644 include/monitor/qmp-helpers.h diff --git a/include/monitor/qmp-helpers.h b/include/monitor/qmp-helpers.h new file mode 100644 index 0000000000..4718c63c73 --- /dev/null +++ b/include/monitor/qmp-helpers.h @@ -0,0 +1,26 @@ +/* + * QMP command helpers + * + * Copyright (c) 2022 Red Hat Inc. + * + * Authors: + * Markus Armbruster + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + */ + +#ifndef MONITOR_QMP_HELPERS_H + +bool qmp_add_client_spice(int fd, bool has_skipauth, bool skipauth, + bool has_tls, bool tls, Error **errp); +#ifdef CONFIG_VNC +bool qmp_add_client_vnc(int fd, bool has_skipauth, bool skipauth, + bool has_tls, bool tls, Error **errp); +#endif +#ifdef CONFIG_DBUS_DISPLAY +bool qmp_add_client_dbus_display(int fd, bool has_skipauth, bool skipauth, + bool has_tls, bool tls, Error **errp); +#endif + +#endif diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index 1189f195ed..eb9d7b6ab6 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -17,13 +17,11 @@ #include "qemu/cutils.h" #include "qemu/option.h" #include "monitor/monitor.h" +#include "monitor/qmp-helpers.h" #include "sysemu/sysemu.h" #include "qemu/config-file.h" #include "qemu/uuid.h" #include "chardev/char.h" -#include "ui/qemu-spice.h" -#include "ui/console.h" -#include "ui/dbus-display.h" #include "sysemu/kvm.h" #include "sysemu/runstate.h" #include "sysemu/runstate-action.h" @@ -174,54 +172,48 @@ void qmp_add_client(const char *protocol, const char = *fdname, bool has_skipauth, bool skipauth, bool has_tls, bool t= ls, Error **errp) { + static struct { + const char *name; + bool (*add_client)(int fd, bool has_skipauth, bool skipauth, + bool has_tls, bool tls, Error **errp); + } protocol_table[] =3D { + { "spice", qmp_add_client_spice }, +#ifdef CONFIG_VNC + { "vnc", qmp_add_client_vnc }, +#endif +#ifdef CONFIG_DBUS_DISPLAY + { "@dbus-display", qmp_add_client_dbus_display }, +#endif + }; Chardev *s; - int fd; + int fd, i; =20 fd =3D monitor_get_fd(monitor_cur(), fdname, errp); if (fd < 0) { return; } =20 - if (strcmp(protocol, "spice") =3D=3D 0) { - if (!qemu_using_spice(errp)) { - close(fd); - return; - } - skipauth =3D has_skipauth ? skipauth : false; - tls =3D has_tls ? tls : false; - if (qemu_spice.display_add_client(fd, skipauth, tls) < 0) { - error_setg(errp, "spice failed to add client"); - close(fd); - } -#ifdef CONFIG_VNC - } else if (strcmp(protocol, "vnc") =3D=3D 0) { - skipauth =3D has_skipauth ? skipauth : false; - vnc_display_add_client(NULL, fd, skipauth); -#endif -#ifdef CONFIG_DBUS_DISPLAY - } else if (strcmp(protocol, "@dbus-display") =3D=3D 0) { - if (!qemu_using_dbus_display(errp)) { - close(fd); - return; - } - if (!qemu_dbus_display.add_client(fd, errp)) { - close(fd); - return; - } -#endif - } else { - s =3D qemu_chr_find(protocol); - if (!s) { - error_setg(errp, "protocol '%s' is invalid", protocol); - close(fd); - return; - } - if (qemu_chr_add_client(s, fd) < 0) { - error_setg(errp, "failed to add client"); - close(fd); + for (i =3D 0; i < ARRAY_SIZE(protocol_table); i++) { + if (!strcmp(protocol, protocol_table[i].name)) { + if (!protocol_table[i].add_client(fd, has_skipauth, skipauth, + has_tls, tls, errp)) { + close(fd); + } return; } } + + s =3D qemu_chr_find(protocol); + if (!s) { + error_setg(errp, "protocol '%s' is invalid", protocol); + close(fd); + return; + } + if (qemu_chr_add_client(s, fd) < 0) { + error_setg(errp, "failed to add client"); + close(fd); + return; + } } =20 MemoryDeviceInfoList *qmp_query_memory_devices(Error **errp) diff --git a/ui/ui-qmp-cmds.c b/ui/ui-qmp-cmds.c index c9f92caf1d..dbc4afcd73 100644 --- a/ui/ui-qmp-cmds.c +++ b/ui/ui-qmp-cmds.c @@ -14,10 +14,12 @@ */ =20 #include "qemu/osdep.h" +#include "monitor/qmp-helpers.h" #include "qapi/qapi-commands-ui.h" #include "qapi/qmp/qerror.h" #include "qemu/cutils.h" #include "ui/console.h" +#include "ui/dbus-display.h" #include "ui/qemu-spice.h" =20 void qmp_set_password(SetPasswordOptions *opts, Error **errp) @@ -103,6 +105,45 @@ void qmp_change_vnc_password(const char *password, Err= or **errp) } #endif =20 +bool qmp_add_client_spice(int fd, bool has_skipauth, bool skipauth, + bool has_tls, bool tls, Error **errp) +{ + if (!qemu_using_spice(errp)) { + return false; + } + skipauth =3D has_skipauth ? skipauth : false; + tls =3D has_tls ? tls : false; + if (qemu_spice.display_add_client(fd, skipauth, tls) < 0) { + error_setg(errp, "spice failed to add client"); + return false; + } + return true; +} + +#ifdef CONFIG_VNC +bool qmp_add_client_vnc(int fd, bool has_skipauth, bool skipauth, + bool has_tls, bool tls, Error **errp) +{ + skipauth =3D has_skipauth ? skipauth : false; + vnc_display_add_client(NULL, fd, skipauth); + return true; +} +#endif + +#ifdef CONFIG_DBUS_DISPLAY +bool qmp_add_client_dbus_display(int fd, bool has_skipauth, bool skipauth, + bool has_tls, bool tls, Error **errp) +{ + if (!qemu_using_dbus_display(errp)) { + return false; + } + if (!qemu_dbus_display.add_client(fd, errp)) { + return false; + } + return true; +} +#endif + void qmp_display_reload(DisplayReloadOptions *arg, Error **errp) { switch (arg->type) { --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975754; cv=none; d=zohomail.com; s=zohoarc; b=Od6M5nwhMiOQDFMvSHLNYtrffvZre+38ogPh1cecdEVkqo8TJT2It8/s2fYuNwNpPJwJnPWKXEIs4paZQxNfjwTBS73Vsxkisp5LB/d+vyq+7cAkiuT445phyX9O+RARIk4dyYa6FRm8BM3gO/Mhv6nnGL56SOgsnwBHsutTsfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975754; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sQxaGbzAjNQr/SDqv7yoIcK82mIxqAE2BV4YlG5gKOY=; b=b/do0VqODtpsASQor8cdYiRW78ZtDq1FWJ8wTmNOdV7EA+QrWgBH9pGPnUa9zB3vI1Xma3uf4SHOZPkCb0Z+K7vNDM7MLr70cQCQthkAuXeG3olkEAWlq0OUMjEcsdcYhMqgot9qoVdhzvcI9Cse9/IqGQcFPMRf8hq5+t6MjZY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975754529379.70165396642665; Fri, 2 Dec 2022 02:09:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vW-0003hR-SA; Fri, 02 Dec 2022 05:05:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vR-0003d8-9k for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:46 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vO-0002Pa-BQ for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:44 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-486-N02d3SoDPVqYDWqPRlgBNA-1; Fri, 02 Dec 2022 05:05:40 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 53CE486F14F; Fri, 2 Dec 2022 10:05:35 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 65E44111E3FA; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 07B2921E65CB; Fri, 2 Dec 2022 11:05:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sQxaGbzAjNQr/SDqv7yoIcK82mIxqAE2BV4YlG5gKOY=; b=Gi9FjEjwJQQraEvox2qJryLrY/OF57rMMrd806InDaNwJ6M9vQwfbxTcrGt5+7kCFfkLgz cj2UNW4kL88I6dMJRoHyi+pkCJrwuNDGvOtwipJS9WzTdG6H+5CDWnSk+xR3hxzjERBJpM bo1H0bqRqqEGQgtg7TrJXliAHDIVWxM= X-MC-Unique: N02d3SoDPVqYDWqPRlgBNA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 11/14] ui: Move HMP commands from monitor to new ui/ui-hmp-cmds.c Date: Fri, 2 Dec 2022 11:05:09 +0100 Message-Id: <20221202100512.4161901-12-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975756385100009 This moves these commands from MAINTAINERS section "Human Monitor (HMP)" to "Graphics". Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- monitor/hmp-cmds.c | 343 ------------------------------------------ ui/ui-hmp-cmds.c | 361 +++++++++++++++++++++++++++++++++++++++++++++ ui/meson.build | 1 + 3 files changed, 362 insertions(+), 343 deletions(-) create mode 100644 ui/ui-hmp-cmds.c diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 86dde966ff..f0f7b74fb3 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -52,7 +52,6 @@ #include "qapi/string-input-visitor.h" #include "qapi/string-output-visitor.h" #include "qom/object_interfaces.h" -#include "ui/console.h" #include "qemu/cutils.h" #include "qemu/error-report.h" #include "hw/core/cpu.h" @@ -60,10 +59,6 @@ #include "migration/snapshot.h" #include "migration/misc.h" =20 -#ifdef CONFIG_SPICE -#include -#endif - bool hmp_handle_error(Monitor *mon, Error *err) { if (err) { @@ -179,26 +174,6 @@ void hmp_info_chardev(Monitor *mon, const QDict *qdict) qapi_free_ChardevInfoList(char_info); } =20 -void hmp_info_mice(Monitor *mon, const QDict *qdict) -{ - MouseInfoList *mice_list, *mouse; - - mice_list =3D qmp_query_mice(NULL); - if (!mice_list) { - monitor_printf(mon, "No mouse devices connected\n"); - return; - } - - for (mouse =3D mice_list; mouse; mouse =3D mouse->next) { - monitor_printf(mon, "%c Mouse #%" PRId64 ": %s%s\n", - mouse->value->current ? '*' : ' ', - mouse->value->index, mouse->value->name, - mouse->value->absolute ? " (absolute)" : ""); - } - - qapi_free_MouseInfoList(mice_list); -} - void hmp_info_migrate(Monitor *mon, const QDict *qdict) { MigrationInfo *info; @@ -518,170 +493,6 @@ void hmp_info_migrate_parameters(Monitor *mon, const = QDict *qdict) qapi_free_MigrationParameters(params); } =20 - -#ifdef CONFIG_VNC -/* Helper for hmp_info_vnc_clients, _servers */ -static void hmp_info_VncBasicInfo(Monitor *mon, VncBasicInfo *info, - const char *name) -{ - monitor_printf(mon, " %s: %s:%s (%s%s)\n", - name, - info->host, - info->service, - NetworkAddressFamily_str(info->family), - info->websocket ? " (Websocket)" : ""); -} - -/* Helper displaying and auth and crypt info */ -static void hmp_info_vnc_authcrypt(Monitor *mon, const char *indent, - VncPrimaryAuth auth, - VncVencryptSubAuth *vencrypt) -{ - monitor_printf(mon, "%sAuth: %s (Sub: %s)\n", indent, - VncPrimaryAuth_str(auth), - vencrypt ? VncVencryptSubAuth_str(*vencrypt) : "none"); -} - -static void hmp_info_vnc_clients(Monitor *mon, VncClientInfoList *client) -{ - while (client) { - VncClientInfo *cinfo =3D client->value; - - hmp_info_VncBasicInfo(mon, qapi_VncClientInfo_base(cinfo), "Client= "); - monitor_printf(mon, " x509_dname: %s\n", - cinfo->has_x509_dname ? - cinfo->x509_dname : "none"); - monitor_printf(mon, " sasl_username: %s\n", - cinfo->has_sasl_username ? - cinfo->sasl_username : "none"); - - client =3D client->next; - } -} - -static void hmp_info_vnc_servers(Monitor *mon, VncServerInfo2List *server) -{ - while (server) { - VncServerInfo2 *sinfo =3D server->value; - hmp_info_VncBasicInfo(mon, qapi_VncServerInfo2_base(sinfo), "Serve= r"); - hmp_info_vnc_authcrypt(mon, " ", sinfo->auth, - sinfo->has_vencrypt ? &sinfo->vencrypt : NU= LL); - server =3D server->next; - } -} - -void hmp_info_vnc(Monitor *mon, const QDict *qdict) -{ - VncInfo2List *info2l, *info2l_head; - Error *err =3D NULL; - - info2l =3D qmp_query_vnc_servers(&err); - info2l_head =3D info2l; - if (hmp_handle_error(mon, err)) { - return; - } - if (!info2l) { - monitor_printf(mon, "None\n"); - return; - } - - while (info2l) { - VncInfo2 *info =3D info2l->value; - monitor_printf(mon, "%s:\n", info->id); - hmp_info_vnc_servers(mon, info->server); - hmp_info_vnc_clients(mon, info->clients); - if (!info->server) { - /* - * The server entry displays its auth, we only need to - * display in the case of 'reverse' connections where - * there's no server. - */ - hmp_info_vnc_authcrypt(mon, " ", info->auth, - info->has_vencrypt ? &info->vencrypt : NULL= ); - } - if (info->has_display) { - monitor_printf(mon, " Display: %s\n", info->display); - } - info2l =3D info2l->next; - } - - qapi_free_VncInfo2List(info2l_head); - -} -#endif - -#ifdef CONFIG_SPICE -void hmp_info_spice(Monitor *mon, const QDict *qdict) -{ - SpiceChannelList *chan; - SpiceInfo *info; - const char *channel_name; - static const char *const channel_names[] =3D { - [SPICE_CHANNEL_MAIN] =3D "main", - [SPICE_CHANNEL_DISPLAY] =3D "display", - [SPICE_CHANNEL_INPUTS] =3D "inputs", - [SPICE_CHANNEL_CURSOR] =3D "cursor", - [SPICE_CHANNEL_PLAYBACK] =3D "playback", - [SPICE_CHANNEL_RECORD] =3D "record", - [SPICE_CHANNEL_TUNNEL] =3D "tunnel", - [SPICE_CHANNEL_SMARTCARD] =3D "smartcard", - [SPICE_CHANNEL_USBREDIR] =3D "usbredir", - [SPICE_CHANNEL_PORT] =3D "port", - [SPICE_CHANNEL_WEBDAV] =3D "webdav", - }; - - info =3D qmp_query_spice(NULL); - - if (!info->enabled) { - monitor_printf(mon, "Server: disabled\n"); - goto out; - } - - monitor_printf(mon, "Server:\n"); - if (info->has_port) { - monitor_printf(mon, " address: %s:%" PRId64 "\n", - info->host, info->port); - } - if (info->has_tls_port) { - monitor_printf(mon, " address: %s:%" PRId64 " [tls]\n", - info->host, info->tls_port); - } - monitor_printf(mon, " migrated: %s\n", - info->migrated ? "true" : "false"); - monitor_printf(mon, " auth: %s\n", info->auth); - monitor_printf(mon, " compiled: %s\n", info->compiled_version); - monitor_printf(mon, " mouse-mode: %s\n", - SpiceQueryMouseMode_str(info->mouse_mode)); - - if (!info->has_channels || info->channels =3D=3D NULL) { - monitor_printf(mon, "Channels: none\n"); - } else { - for (chan =3D info->channels; chan; chan =3D chan->next) { - monitor_printf(mon, "Channel:\n"); - monitor_printf(mon, " address: %s:%s%s\n", - chan->value->host, chan->value->port, - chan->value->tls ? " [tls]" : ""); - monitor_printf(mon, " session: %" PRId64 "\n", - chan->value->connection_id); - monitor_printf(mon, " channel: %" PRId64 ":%" PRId64 "\n", - chan->value->channel_type, chan->value->channel= _id); - - channel_name =3D "unknown"; - if (chan->value->channel_type > 0 && - chan->value->channel_type < ARRAY_SIZE(channel_names) && - channel_names[chan->value->channel_type]) { - channel_name =3D channel_names[chan->value->channel_type]; - } - - monitor_printf(mon, " channel name: %s\n", channel_name); - } - } - -out: - qapi_free_SpiceInfo(info); -} -#endif - void hmp_info_balloon(Monitor *mon, const QDict *qdict) { BalloonInfo *info; @@ -1376,71 +1187,6 @@ void hmp_x_colo_lost_heartbeat(Monitor *mon, const Q= Dict *qdict) hmp_handle_error(mon, err); } =20 -void hmp_set_password(Monitor *mon, const QDict *qdict) -{ - const char *protocol =3D qdict_get_str(qdict, "protocol"); - const char *password =3D qdict_get_str(qdict, "password"); - const char *display =3D qdict_get_try_str(qdict, "display"); - const char *connected =3D qdict_get_try_str(qdict, "connected"); - Error *err =3D NULL; - - SetPasswordOptions opts =3D { - .password =3D (char *)password, - .has_connected =3D !!connected, - }; - - opts.connected =3D qapi_enum_parse(&SetPasswordAction_lookup, connecte= d, - SET_PASSWORD_ACTION_KEEP, &err); - if (err) { - goto out; - } - - opts.protocol =3D qapi_enum_parse(&DisplayProtocol_lookup, protocol, - DISPLAY_PROTOCOL_VNC, &err); - if (err) { - goto out; - } - - if (opts.protocol =3D=3D DISPLAY_PROTOCOL_VNC) { - opts.u.vnc.has_display =3D !!display; - opts.u.vnc.display =3D (char *)display; - } - - qmp_set_password(&opts, &err); - -out: - hmp_handle_error(mon, err); -} - -void hmp_expire_password(Monitor *mon, const QDict *qdict) -{ - const char *protocol =3D qdict_get_str(qdict, "protocol"); - const char *whenstr =3D qdict_get_str(qdict, "time"); - const char *display =3D qdict_get_try_str(qdict, "display"); - Error *err =3D NULL; - - ExpirePasswordOptions opts =3D { - .time =3D (char *)whenstr, - }; - - opts.protocol =3D qapi_enum_parse(&DisplayProtocol_lookup, protocol, - DISPLAY_PROTOCOL_VNC, &err); - if (err) { - goto out; - } - - if (opts.protocol =3D=3D DISPLAY_PROTOCOL_VNC) { - opts.u.vnc.has_display =3D !!display; - opts.u.vnc.display =3D (char *)display; - } - - qmp_expire_password(&opts, &err); - -out: - hmp_handle_error(mon, err); -} - - #ifdef CONFIG_VNC static void hmp_change_read_arg(void *opaque, const char *password, void *readline_opaque) @@ -1638,95 +1384,6 @@ void hmp_closefd(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } =20 -void hmp_sendkey(Monitor *mon, const QDict *qdict) -{ - const char *keys =3D qdict_get_str(qdict, "keys"); - KeyValue *v =3D NULL; - KeyValueList *head =3D NULL, **tail =3D &head; - int has_hold_time =3D qdict_haskey(qdict, "hold-time"); - int hold_time =3D qdict_get_try_int(qdict, "hold-time", -1); - Error *err =3D NULL; - const char *separator; - int keyname_len; - - while (1) { - separator =3D qemu_strchrnul(keys, '-'); - keyname_len =3D separator - keys; - - /* Be compatible with old interface, convert user inputted "<" */ - if (keys[0] =3D=3D '<' && keyname_len =3D=3D 1) { - keys =3D "less"; - keyname_len =3D 4; - } - - v =3D g_malloc0(sizeof(*v)); - - if (strstart(keys, "0x", NULL)) { - const char *endp; - unsigned long value; - - if (qemu_strtoul(keys, &endp, 0, &value) < 0 - || value >=3D INT_MAX) { - goto err_out; - } - assert(endp <=3D keys + keyname_len); - if (endp !=3D keys + keyname_len) { - goto err_out; - } - v->type =3D KEY_VALUE_KIND_NUMBER; - v->u.number.data =3D value; - } else { - int idx =3D index_from_key(keys, keyname_len); - if (idx =3D=3D Q_KEY_CODE__MAX) { - goto err_out; - } - v->type =3D KEY_VALUE_KIND_QCODE; - v->u.qcode.data =3D idx; - } - QAPI_LIST_APPEND(tail, v); - v =3D NULL; - - if (!*separator) { - break; - } - keys =3D separator + 1; - } - - qmp_send_key(head, has_hold_time, hold_time, &err); - hmp_handle_error(mon, err); - -out: - qapi_free_KeyValue(v); - qapi_free_KeyValueList(head); - return; - -err_out: - monitor_printf(mon, "invalid parameter: %.*s\n", keyname_len, keys); - goto out; -} - -void coroutine_fn -hmp_screendump(Monitor *mon, const QDict *qdict) -{ - const char *filename =3D qdict_get_str(qdict, "filename"); - const char *id =3D qdict_get_try_str(qdict, "device"); - int64_t head =3D qdict_get_try_int(qdict, "head", 0); - const char *input_format =3D qdict_get_try_str(qdict, "format"); - Error *err =3D NULL; - ImageFormat format; - - format =3D qapi_enum_parse(&ImageFormat_lookup, input_format, - IMAGE_FORMAT_PPM, &err); - if (err) { - goto end; - } - - qmp_screendump(filename, id !=3D NULL, id, id !=3D NULL, head, - input_format !=3D NULL, format, &err); -end: - hmp_handle_error(mon, err); -} - void hmp_chardev_add(Monitor *mon, const QDict *qdict) { const char *args =3D qdict_get_str(qdict, "args"); diff --git a/ui/ui-hmp-cmds.c b/ui/ui-hmp-cmds.c new file mode 100644 index 0000000000..c26a1f00d0 --- /dev/null +++ b/ui/ui-hmp-cmds.c @@ -0,0 +1,361 @@ +/* + * Human Monitor Interface commands + * + * Copyright IBM, Corp. 2011 + * + * Authors: + * Anthony Liguori + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + * Contributions after 2012-01-13 are licensed under the terms of the + * GNU GPL, version 2 or (at your option) any later version. + */ + +#include "qemu/osdep.h" +#ifdef CONFIG_SPICE +#include +#endif +#include "monitor/hmp.h" +#include "monitor/monitor.h" +#include "qapi/qapi-commands-ui.h" +#include "qapi/qmp/qdict.h" +#include "qemu/cutils.h" +#include "ui/console.h" + +void hmp_info_mice(Monitor *mon, const QDict *qdict) +{ + MouseInfoList *mice_list, *mouse; + + mice_list =3D qmp_query_mice(NULL); + if (!mice_list) { + monitor_printf(mon, "No mouse devices connected\n"); + return; + } + + for (mouse =3D mice_list; mouse; mouse =3D mouse->next) { + monitor_printf(mon, "%c Mouse #%" PRId64 ": %s%s\n", + mouse->value->current ? '*' : ' ', + mouse->value->index, mouse->value->name, + mouse->value->absolute ? " (absolute)" : ""); + } + + qapi_free_MouseInfoList(mice_list); +} + +#ifdef CONFIG_VNC +/* Helper for hmp_info_vnc_clients, _servers */ +static void hmp_info_VncBasicInfo(Monitor *mon, VncBasicInfo *info, + const char *name) +{ + monitor_printf(mon, " %s: %s:%s (%s%s)\n", + name, + info->host, + info->service, + NetworkAddressFamily_str(info->family), + info->websocket ? " (Websocket)" : ""); +} + +/* Helper displaying and auth and crypt info */ +static void hmp_info_vnc_authcrypt(Monitor *mon, const char *indent, + VncPrimaryAuth auth, + VncVencryptSubAuth *vencrypt) +{ + monitor_printf(mon, "%sAuth: %s (Sub: %s)\n", indent, + VncPrimaryAuth_str(auth), + vencrypt ? VncVencryptSubAuth_str(*vencrypt) : "none"); +} + +static void hmp_info_vnc_clients(Monitor *mon, VncClientInfoList *client) +{ + while (client) { + VncClientInfo *cinfo =3D client->value; + + hmp_info_VncBasicInfo(mon, qapi_VncClientInfo_base(cinfo), "Client= "); + monitor_printf(mon, " x509_dname: %s\n", + cinfo->has_x509_dname ? + cinfo->x509_dname : "none"); + monitor_printf(mon, " sasl_username: %s\n", + cinfo->has_sasl_username ? + cinfo->sasl_username : "none"); + + client =3D client->next; + } +} + +static void hmp_info_vnc_servers(Monitor *mon, VncServerInfo2List *server) +{ + while (server) { + VncServerInfo2 *sinfo =3D server->value; + hmp_info_VncBasicInfo(mon, qapi_VncServerInfo2_base(sinfo), "Serve= r"); + hmp_info_vnc_authcrypt(mon, " ", sinfo->auth, + sinfo->has_vencrypt ? &sinfo->vencrypt : NU= LL); + server =3D server->next; + } +} + +void hmp_info_vnc(Monitor *mon, const QDict *qdict) +{ + VncInfo2List *info2l, *info2l_head; + Error *err =3D NULL; + + info2l =3D qmp_query_vnc_servers(&err); + info2l_head =3D info2l; + if (hmp_handle_error(mon, err)) { + return; + } + if (!info2l) { + monitor_printf(mon, "None\n"); + return; + } + + while (info2l) { + VncInfo2 *info =3D info2l->value; + monitor_printf(mon, "%s:\n", info->id); + hmp_info_vnc_servers(mon, info->server); + hmp_info_vnc_clients(mon, info->clients); + if (!info->server) { + /* + * The server entry displays its auth, we only need to + * display in the case of 'reverse' connections where + * there's no server. + */ + hmp_info_vnc_authcrypt(mon, " ", info->auth, + info->has_vencrypt ? &info->vencrypt : NULL= ); + } + if (info->has_display) { + monitor_printf(mon, " Display: %s\n", info->display); + } + info2l =3D info2l->next; + } + + qapi_free_VncInfo2List(info2l_head); + +} +#endif + +#ifdef CONFIG_SPICE +void hmp_info_spice(Monitor *mon, const QDict *qdict) +{ + SpiceChannelList *chan; + SpiceInfo *info; + const char *channel_name; + static const char *const channel_names[] =3D { + [SPICE_CHANNEL_MAIN] =3D "main", + [SPICE_CHANNEL_DISPLAY] =3D "display", + [SPICE_CHANNEL_INPUTS] =3D "inputs", + [SPICE_CHANNEL_CURSOR] =3D "cursor", + [SPICE_CHANNEL_PLAYBACK] =3D "playback", + [SPICE_CHANNEL_RECORD] =3D "record", + [SPICE_CHANNEL_TUNNEL] =3D "tunnel", + [SPICE_CHANNEL_SMARTCARD] =3D "smartcard", + [SPICE_CHANNEL_USBREDIR] =3D "usbredir", + [SPICE_CHANNEL_PORT] =3D "port", + [SPICE_CHANNEL_WEBDAV] =3D "webdav", + }; + + info =3D qmp_query_spice(NULL); + + if (!info->enabled) { + monitor_printf(mon, "Server: disabled\n"); + goto out; + } + + monitor_printf(mon, "Server:\n"); + if (info->has_port) { + monitor_printf(mon, " address: %s:%" PRId64 "\n", + info->host, info->port); + } + if (info->has_tls_port) { + monitor_printf(mon, " address: %s:%" PRId64 " [tls]\n", + info->host, info->tls_port); + } + monitor_printf(mon, " migrated: %s\n", + info->migrated ? "true" : "false"); + monitor_printf(mon, " auth: %s\n", info->auth); + monitor_printf(mon, " compiled: %s\n", info->compiled_version); + monitor_printf(mon, " mouse-mode: %s\n", + SpiceQueryMouseMode_str(info->mouse_mode)); + + if (!info->has_channels || info->channels =3D=3D NULL) { + monitor_printf(mon, "Channels: none\n"); + } else { + for (chan =3D info->channels; chan; chan =3D chan->next) { + monitor_printf(mon, "Channel:\n"); + monitor_printf(mon, " address: %s:%s%s\n", + chan->value->host, chan->value->port, + chan->value->tls ? " [tls]" : ""); + monitor_printf(mon, " session: %" PRId64 "\n", + chan->value->connection_id); + monitor_printf(mon, " channel: %" PRId64 ":%" PRId64 "\n", + chan->value->channel_type, chan->value->channel= _id); + + channel_name =3D "unknown"; + if (chan->value->channel_type > 0 && + chan->value->channel_type < ARRAY_SIZE(channel_names) && + channel_names[chan->value->channel_type]) { + channel_name =3D channel_names[chan->value->channel_type]; + } + + monitor_printf(mon, " channel name: %s\n", channel_name); + } + } + +out: + qapi_free_SpiceInfo(info); +} +#endif + +void hmp_set_password(Monitor *mon, const QDict *qdict) +{ + const char *protocol =3D qdict_get_str(qdict, "protocol"); + const char *password =3D qdict_get_str(qdict, "password"); + const char *display =3D qdict_get_try_str(qdict, "display"); + const char *connected =3D qdict_get_try_str(qdict, "connected"); + Error *err =3D NULL; + + SetPasswordOptions opts =3D { + .password =3D (char *)password, + .has_connected =3D !!connected, + }; + + opts.connected =3D qapi_enum_parse(&SetPasswordAction_lookup, connecte= d, + SET_PASSWORD_ACTION_KEEP, &err); + if (err) { + goto out; + } + + opts.protocol =3D qapi_enum_parse(&DisplayProtocol_lookup, protocol, + DISPLAY_PROTOCOL_VNC, &err); + if (err) { + goto out; + } + + if (opts.protocol =3D=3D DISPLAY_PROTOCOL_VNC) { + opts.u.vnc.has_display =3D !!display; + opts.u.vnc.display =3D (char *)display; + } + + qmp_set_password(&opts, &err); + +out: + hmp_handle_error(mon, err); +} + +void hmp_expire_password(Monitor *mon, const QDict *qdict) +{ + const char *protocol =3D qdict_get_str(qdict, "protocol"); + const char *whenstr =3D qdict_get_str(qdict, "time"); + const char *display =3D qdict_get_try_str(qdict, "display"); + Error *err =3D NULL; + + ExpirePasswordOptions opts =3D { + .time =3D (char *)whenstr, + }; + + opts.protocol =3D qapi_enum_parse(&DisplayProtocol_lookup, protocol, + DISPLAY_PROTOCOL_VNC, &err); + if (err) { + goto out; + } + + if (opts.protocol =3D=3D DISPLAY_PROTOCOL_VNC) { + opts.u.vnc.has_display =3D !!display; + opts.u.vnc.display =3D (char *)display; + } + + qmp_expire_password(&opts, &err); + +out: + hmp_handle_error(mon, err); +} + +void hmp_sendkey(Monitor *mon, const QDict *qdict) +{ + const char *keys =3D qdict_get_str(qdict, "keys"); + KeyValue *v =3D NULL; + KeyValueList *head =3D NULL, **tail =3D &head; + int has_hold_time =3D qdict_haskey(qdict, "hold-time"); + int hold_time =3D qdict_get_try_int(qdict, "hold-time", -1); + Error *err =3D NULL; + const char *separator; + int keyname_len; + + while (1) { + separator =3D qemu_strchrnul(keys, '-'); + keyname_len =3D separator - keys; + + /* Be compatible with old interface, convert user inputted "<" */ + if (keys[0] =3D=3D '<' && keyname_len =3D=3D 1) { + keys =3D "less"; + keyname_len =3D 4; + } + + v =3D g_malloc0(sizeof(*v)); + + if (strstart(keys, "0x", NULL)) { + const char *endp; + unsigned long value; + + if (qemu_strtoul(keys, &endp, 0, &value) < 0 + || value >=3D INT_MAX) { + goto err_out; + } + assert(endp <=3D keys + keyname_len); + if (endp !=3D keys + keyname_len) { + goto err_out; + } + v->type =3D KEY_VALUE_KIND_NUMBER; + v->u.number.data =3D value; + } else { + int idx =3D index_from_key(keys, keyname_len); + if (idx =3D=3D Q_KEY_CODE__MAX) { + goto err_out; + } + v->type =3D KEY_VALUE_KIND_QCODE; + v->u.qcode.data =3D idx; + } + QAPI_LIST_APPEND(tail, v); + v =3D NULL; + + if (!*separator) { + break; + } + keys =3D separator + 1; + } + + qmp_send_key(head, has_hold_time, hold_time, &err); + hmp_handle_error(mon, err); + +out: + qapi_free_KeyValue(v); + qapi_free_KeyValueList(head); + return; + +err_out: + monitor_printf(mon, "invalid parameter: %.*s\n", keyname_len, keys); + goto out; +} + +void coroutine_fn +hmp_screendump(Monitor *mon, const QDict *qdict) +{ + const char *filename =3D qdict_get_str(qdict, "filename"); + const char *id =3D qdict_get_try_str(qdict, "device"); + int64_t head =3D qdict_get_try_int(qdict, "head", 0); + const char *input_format =3D qdict_get_try_str(qdict, "format"); + Error *err =3D NULL; + ImageFormat format; + + format =3D qapi_enum_parse(&ImageFormat_lookup, input_format, + IMAGE_FORMAT_PPM, &err); + if (err) { + goto end; + } + + qmp_screendump(filename, id !=3D NULL, id, id !=3D NULL, head, + input_format !=3D NULL, format, &err); +end: + hmp_handle_error(mon, err); +} diff --git a/ui/meson.build b/ui/meson.build index 9194ea335b..612ea2325b 100644 --- a/ui/meson.build +++ b/ui/meson.build @@ -14,6 +14,7 @@ softmmu_ss.add(files( 'kbd-state.c', 'keymaps.c', 'qemu-pixman.c', + 'ui-hmp-cmds.c', 'ui-qmp-cmds.c', 'util.c', )) --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975843; cv=none; d=zohomail.com; s=zohoarc; b=O5CHlVwtLUrNnD7ErXVTwEg/hjiyUpeNE0ISoEseJToLTJXvR8QSnU9UoeWEAn+4edrAR6sTiJHxYVcX9OQvcmpDggTYn/ERK/OVc++9uBn1tE8J9lf4ibZ+/+BCTzUPSj/Net00156xM748Cj+i5k8zbQpjbErGsKc8DtOi5/g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975843; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9yYK7HTHkNWsZfRGRWukgaE9bd0nwZDj4Rod19iUk+4=; b=Y7+VWMOsCAU9H+9q43Mnpik9mdYuln+NRx57pcfPIKEKh7TDD016MxLwR4VEhnwCfy+PZYhSbavpnH1ETiT7pRnPn0PvV3Nai8c0mkliPfdlsvPFfq64liYjfqc2XWO3uV1IgtS/GhugL472u/D4Yit9hinJQR1bOwe0zjWHiQ8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975843554849.5530575736373; Fri, 2 Dec 2022 02:10:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vV-0003gG-3p; Fri, 02 Dec 2022 05:05:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vR-0003d0-8q for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:46 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vP-0002Pu-2w for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:44 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-237-n2_TicHGNjyzPP23JNoIvQ-1; Fri, 02 Dec 2022 05:05:39 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A82951C087B2; Fri, 2 Dec 2022 10:05:33 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 67C76111E3FB; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 0A08921E65CC; Fri, 2 Dec 2022 11:05:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9yYK7HTHkNWsZfRGRWukgaE9bd0nwZDj4Rod19iUk+4=; b=X1rOBm598JHcsiNQdSJAwo2tCWfLEBaVTlEL+quhpnceWfs812wDSpzHXr8MqdyLGFAuMu nJSNkCEGfl4w9MGZH2dewW5btiLDMNjLEVFstE29/eFo0/mjG8KAw9+62mJh5h+zAoohX7 2VTBU4tlSHTXVcj9FggjaLwaQXxuLQg= X-MC-Unique: n2_TicHGNjyzPP23JNoIvQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 12/14] ui: Improve "change vnc" error reporting Date: Fri, 2 Dec 2022 11:05:10 +0100 Message-Id: <20221202100512.4161901-13-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975844606100001 Switch from monitor_printf() to error_setg() and hmp_handle_error(). This makes "this is an error" more obvious both in the source and in the monitor, where hmp_handle_error() prefixes the message with "Error: ". Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- monitor/hmp-cmds.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index f0f7b74fb3..8542eee3d4 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1209,9 +1209,8 @@ void hmp_change(Monitor *mon, const QDict *qdict) #ifdef CONFIG_VNC if (strcmp(device, "vnc") =3D=3D 0) { if (read_only) { - monitor_printf(mon, - "Parameter 'read-only-mode' is invalid for VNC\= n"); - return; + error_setg(&err, "Parameter 'read-only-mode' is invalid for VN= C"); + goto end; } if (strcmp(target, "passwd") =3D=3D 0 || strcmp(target, "password") =3D=3D 0) { @@ -1223,7 +1222,8 @@ void hmp_change(Monitor *mon, const QDict *qdict) qmp_change_vnc_password(arg, &err); } } else { - monitor_printf(mon, "Expected 'password' after 'vnc'\n"); + error_setg(&err, "Expected 'password' after 'vnc'"); + goto end; } } else #endif --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975793; cv=none; d=zohomail.com; s=zohoarc; b=VAHOt5BJGQaTzqrOh/EJwD1IBBrwHd+2hF9vf/zDCgBvdu1TFo7mTLhYro71nRdsJXyfzgbtuFZSyzp4zDWkxPDMl7F0BTeLobTEEEW8GIKFL3CzS1cSS+673vQBFfLcuSyfj+nOYupBNs+0tQ9oXhVr8Uvp+sqvokEcb+TUo9I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975793; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=87v4JXy1ORyVrxnkn5qwvQ8cEEk0CF86ENlLsmAYzd0=; b=izSTbfF4nSCK5i1z3mnxKCxNwnZUOgCcLkAtjjAV0VFYC43qPfSvnsj2HU+gRNxLxTdbXsKQ39emz5gfrpQnb1fqREyb3kHP97uDy+IoI6WO9a++73Dv9vpycBtDw58YK7qUJrINnubABtFWhkpVIXXpUxLsNX+2owuJtmvs++U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975793293846.6037656520521; Fri, 2 Dec 2022 02:09:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vX-0003hs-KB; Fri, 02 Dec 2022 05:05:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vQ-0003cZ-7Y for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vN-0002PP-QT for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:43 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-247-uBWMRlzGNuSneFylvAgLlQ-1; Fri, 02 Dec 2022 05:05:39 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C11DA2A2AD70; Fri, 2 Dec 2022 10:05:33 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6A992414A815; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 0C63C21E65CF; Fri, 2 Dec 2022 11:05:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=87v4JXy1ORyVrxnkn5qwvQ8cEEk0CF86ENlLsmAYzd0=; b=Wu5cdYfAldoapxdhqTgL+DHJ7xMnRarnppgvBsqIHik0r5vrwmTOkH+RzVeSZdRJpiL2Ke 73ncplukUIrm0fRPt+VUQ/60H51b1DpEZ6k2C0pj20b4ycIuzlDiR3W1sF5zywK8XSsfda mFG/MNGZKa8gu3yWvkuZJJtEoRjt2ek= X-MC-Unique: uBWMRlzGNuSneFylvAgLlQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 13/14] ui: Factor out hmp_change_vnc(), and move to ui/ui-hmp-cmds.c Date: Fri, 2 Dec 2022 11:05:11 +0100 Message-Id: <20221202100512.4161901-14-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975794377100001 Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- include/monitor/hmp.h | 5 +++++ monitor/hmp-cmds.c | 28 +--------------------------- ui/ui-hmp-cmds.c | 35 ++++++++++++++++++++++++++++++++++- 3 files changed, 40 insertions(+), 28 deletions(-) diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index dfbc0c9a2f..992d91f181 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -73,6 +73,11 @@ void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict= *qdict); void hmp_set_password(Monitor *mon, const QDict *qdict); void hmp_expire_password(Monitor *mon, const QDict *qdict); void hmp_change(Monitor *mon, const QDict *qdict); +#ifdef CONFIG_VNC +void hmp_change_vnc(Monitor *mon, const char *device, const char *target, + const char *arg, const char *read_only, bool force, + Error **errp); +#endif void hmp_migrate(Monitor *mon, const QDict *qdict); void hmp_device_add(Monitor *mon, const QDict *qdict); void hmp_device_del(Monitor *mon, const QDict *qdict); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 8542eee3d4..78bcdede85 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -42,7 +42,6 @@ #include "qapi/qapi-commands-run-state.h" #include "qapi/qapi-commands-stats.h" #include "qapi/qapi-commands-tpm.h" -#include "qapi/qapi-commands-ui.h" #include "qapi/qapi-commands-virtio.h" #include "qapi/qapi-visit-virtio.h" #include "qapi/qapi-visit-net.h" @@ -1187,15 +1186,6 @@ void hmp_x_colo_lost_heartbeat(Monitor *mon, const Q= Dict *qdict) hmp_handle_error(mon, err); } =20 -#ifdef CONFIG_VNC -static void hmp_change_read_arg(void *opaque, const char *password, - void *readline_opaque) -{ - qmp_change_vnc_password(password, NULL); - monitor_read_command(opaque, 1); -} -#endif - void hmp_change(Monitor *mon, const QDict *qdict) { const char *device =3D qdict_get_str(qdict, "device"); @@ -1208,23 +1198,7 @@ void hmp_change(Monitor *mon, const QDict *qdict) =20 #ifdef CONFIG_VNC if (strcmp(device, "vnc") =3D=3D 0) { - if (read_only) { - error_setg(&err, "Parameter 'read-only-mode' is invalid for VN= C"); - goto end; - } - if (strcmp(target, "passwd") =3D=3D 0 || - strcmp(target, "password") =3D=3D 0) { - if (!arg) { - MonitorHMP *hmp_mon =3D container_of(mon, MonitorHMP, comm= on); - monitor_read_password(hmp_mon, hmp_change_read_arg, NULL); - return; - } else { - qmp_change_vnc_password(arg, &err); - } - } else { - error_setg(&err, "Expected 'password' after 'vnc'"); - goto end; - } + hmp_change_vnc(mon, device, target, arg, read_only, force, &err); } else #endif { diff --git a/ui/ui-hmp-cmds.c b/ui/ui-hmp-cmds.c index c26a1f00d0..e17f22c869 100644 --- a/ui/ui-hmp-cmds.c +++ b/ui/ui-hmp-cmds.c @@ -18,7 +18,8 @@ #include #endif #include "monitor/hmp.h" -#include "monitor/monitor.h" +#include "monitor/monitor-internal.h" +#include "qapi/error.h" #include "qapi/qapi-commands-ui.h" #include "qapi/qmp/qdict.h" #include "qemu/cutils.h" @@ -271,6 +272,38 @@ out: hmp_handle_error(mon, err); } =20 +#ifdef CONFIG_VNC +static void hmp_change_read_arg(void *opaque, const char *password, + void *readline_opaque) +{ + qmp_change_vnc_password(password, NULL); + monitor_read_command(opaque, 1); +} + +void hmp_change_vnc(Monitor *mon, const char *device, const char *target, + const char *arg, const char *read_only, bool force, + Error **errp) +{ + if (read_only) { + error_setg(errp, "Parameter 'read-only-mode' is invalid for VNC"); + return; + } + if (strcmp(target, "passwd") =3D=3D 0 || + strcmp(target, "password") =3D=3D 0) { + if (!arg) { + MonitorHMP *hmp_mon =3D container_of(mon, MonitorHMP, common); + monitor_read_password(hmp_mon, hmp_change_read_arg, NULL); + return; + } else { + qmp_change_vnc_password(arg, errp); + } + } else { + error_setg(errp, "Expected 'password' after 'vnc'"); + return; + } +} +#endif + void hmp_sendkey(Monitor *mon, const QDict *qdict) { const char *keys =3D qdict_get_str(qdict, "keys"); --=20 2.37.3 From nobody Thu May 2 18:24:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1669975754; cv=none; d=zohomail.com; s=zohoarc; b=SaKfE1UtU9a7PTaGMw0eoTC1THx88EUVeV2/Cpw5LbO/AiPChkq2gl/mkqk7mIBXiYO1qVnc92SIeBbWbhDDtm5uwfQiKXepoWxrmylTh2/dgpOlGLkqUkGg2JV38Hr+yZzxuhuimvAPE7YgpbTp0/kcOsPLcApGhNDuKztTTHU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1669975754; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2JvEG60EkTVaiKsOn91mAJtGbtsjJyxUKSnpMbu8Ykg=; b=UuDggg5LWzzjbVYVJYESErRMpiOnz+wIq7Dk7rO3hDs/iv+e8G/+UWbQ+HMmb7C0r0thRG0RNpHAybVX8vUvR8OfPWBzhhFfngLaRnN03KgyK6jkpnOQWEgctxJYpOmTZQNj/J/nVJ4V7/18eVk56S8/pxohEv5qCXtk96dW8AM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1669975754102620.7079771181517; Fri, 2 Dec 2022 02:09:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p12vT-0003fW-VO; Fri, 02 Dec 2022 05:05:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vO-0003c1-Da for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:43 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p12vM-0002P6-Nq for qemu-devel@nongnu.org; Fri, 02 Dec 2022 05:05:41 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-144-kIJyRw4MNz-MaR1EUbhUsg-1; Fri, 02 Dec 2022 05:05:39 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id AFDF82A2AD6F; Fri, 2 Dec 2022 10:05:33 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6EEB82028CE4; Fri, 2 Dec 2022 10:05:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 0EEA521E65D2; Fri, 2 Dec 2022 11:05:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669975540; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2JvEG60EkTVaiKsOn91mAJtGbtsjJyxUKSnpMbu8Ykg=; b=YqxWSyTXj2i4K9dvncLm5IXkU9hqfdk5Q/OWbz720vegXoXIwKp1gTl8kwE+5hmWVvY82/ oZsGw1iqs1/GXRZe0uxRT8YDNi4/ptfWBp+bMWJBepXrTyZFuR5L2xv8GOTYblk27aVsOA 8N74RDMXWD7dhcbmM9WRjrZpm4kHeeY= X-MC-Unique: kIJyRw4MNz-MaR1EUbhUsg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, dgilbert@redhat.com, berrange@redhat.com, philmd@linaro.org Subject: [PATCH v2 14/14] ui: Reduce nesting in hmp_change_vnc() slightly Date: Fri, 2 Dec 2022 11:05:12 +0100 Message-Id: <20221202100512.4161901-15-armbru@redhat.com> In-Reply-To: <20221202100512.4161901-1-armbru@redhat.com> References: <20221202100512.4161901-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1669975756276100005 Transform if (good) { do stuff } else { handle error } to if (!good) { handle error return; } do stuff Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- ui/ui-hmp-cmds.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/ui/ui-hmp-cmds.c b/ui/ui-hmp-cmds.c index e17f22c869..54ad7db5db 100644 --- a/ui/ui-hmp-cmds.c +++ b/ui/ui-hmp-cmds.c @@ -288,19 +288,16 @@ void hmp_change_vnc(Monitor *mon, const char *device,= const char *target, error_setg(errp, "Parameter 'read-only-mode' is invalid for VNC"); return; } - if (strcmp(target, "passwd") =3D=3D 0 || - strcmp(target, "password") =3D=3D 0) { - if (!arg) { - MonitorHMP *hmp_mon =3D container_of(mon, MonitorHMP, common); - monitor_read_password(hmp_mon, hmp_change_read_arg, NULL); - return; - } else { - qmp_change_vnc_password(arg, errp); - } - } else { + if (strcmp(target, "passwd") && strcmp(target, "password")) { error_setg(errp, "Expected 'password' after 'vnc'"); return; } + if (!arg) { + MonitorHMP *hmp_mon =3D container_of(mon, MonitorHMP, common); + monitor_read_password(hmp_mon, hmp_change_read_arg, NULL); + } else { + qmp_change_vnc_password(arg, errp); + } } #endif =20 --=20 2.37.3