From nobody Sat Apr 20 06:40:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1637326691; cv=none; d=zohomail.com; s=zohoarc; b=nQeTYAytX/6ymec2ThILzFEaT2Gh02I9wmKblvYHpqznARRvbvPUKt4E/R0HUrEt0EISjyCeGRwLmiUHjTlkcytuYKbRBGOjX9O4Bm/cIHMuiT51NwBZuTqggOYKcomqzbRr2Aph7QhlJdL9Eu1LM+uM9RPIFh8ZIcZGMBnb6i4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1637326691; h=Content-Type:Content-Transfer-Encoding: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=iHxvWwuI9efBBQjEwV5tQyp3wEVt726IpFQyaLr6yig=; b=hxURzLgIKXq1d5avNXOeLk5A0kUcGFoX2fINxVzdb9ALsK+zqPRROf7M2sQ1D+gd/Ws7EtyjrJ/jpI+MQEBxSeJrfbmlVVbDk6JVmkN9hAUts4qSMqycHMUjQpOEv/LSpPVc41oo1QsppTKBo7v1eHoWapPAOqKW4ahW8qghkVw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1637326691548366.9378901961984; Fri, 19 Nov 2021 04:58:11 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-603-al0FkHPPNAmfrM6ESLLoEw-1; Fri, 19 Nov 2021 07:58:09 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A1A791B18BC5; Fri, 19 Nov 2021 12:58:03 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 809A260C81; Fri, 19 Nov 2021 12:58:03 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 4C68D1832DD6; Fri, 19 Nov 2021 12:58:03 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1AJCvv7U005440 for ; Fri, 19 Nov 2021 07:57:57 -0500 Received: by smtp.corp.redhat.com (Postfix) id 1960360C81; Fri, 19 Nov 2021 12:57:57 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3F5E860BF1 for ; Fri, 19 Nov 2021 12:57:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637326690; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=iHxvWwuI9efBBQjEwV5tQyp3wEVt726IpFQyaLr6yig=; b=d0kwItiV6BvtCSHn1KR2OTWjS1heIWHF4c+qNYQ+FDs1l7OfxAZa+Y+VNDm76H0rvZfP8J 3dX9HVMiitVp97nDwjEoeJkioFhXZ3qFgvgAJr64CCkSRdo8b2ZcqqDbM7MOZWimMhyfGS +hOVpK05gCOCQXMXkzrtFCaxG+jgHLU= X-MC-Unique: al0FkHPPNAmfrM6ESLLoEw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH v2 1/3] qemuMonitorJSONAttachCharDevGetProps: Rename 'backend_type' and 'data' Date: Fri, 19 Nov 2021 13:57:42 +0100 Message-Id: <677c1564fc1e87b313acfe0b56fd2bbaadfc59cd.1637326546.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1637326693658100001 Content-Type: text/plain; charset="utf-8" Rename 'data' to 'backendData' so that it's more clear what the object represents and 'backend_type' to 'backendType' to go with the common camel case notation. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_monitor_json.c | 60 ++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 1ced942161..0c66086598 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6614,9 +6614,9 @@ qemuMonitorJSONAttachCharDevGetProps(const char *chrI= D, { g_autoptr(virJSONValue) props =3D NULL; g_autoptr(virJSONValue) backend =3D virJSONValueNewObject(); - g_autoptr(virJSONValue) data =3D virJSONValueNewObject(); + g_autoptr(virJSONValue) backendData =3D virJSONValueNewObject(); g_autoptr(virJSONValue) addr =3D NULL; - const char *backend_type =3D NULL; + const char *backendType =3D NULL; const char *host; const char *port; g_autofree char *tlsalias =3D NULL; @@ -6624,72 +6624,72 @@ qemuMonitorJSONAttachCharDevGetProps(const char *ch= rID, switch ((virDomainChrType)chr->type) { case VIR_DOMAIN_CHR_TYPE_NULL: - backend_type =3D "null"; + backendType =3D "null"; break; case VIR_DOMAIN_CHR_TYPE_VC: - backend_type =3D "vc"; + backendType =3D "vc"; break; case VIR_DOMAIN_CHR_TYPE_PTY: - backend_type =3D "pty"; + backendType =3D "pty"; break; case VIR_DOMAIN_CHR_TYPE_FILE: - backend_type =3D "file"; - if (virJSONValueObjectAppendString(data, "out", chr->data.file.pat= h) < 0) + backendType =3D "file"; + if (virJSONValueObjectAppendString(backendData, "out", chr->data.f= ile.path) < 0) return NULL; - if (virJSONValueObjectAdd(&data, + if (virJSONValueObjectAdd(&backendData, "T:append", chr->data.file.append, NULL) < 0) return NULL; break; case VIR_DOMAIN_CHR_TYPE_DEV: - backend_type =3D STRPREFIX(chrID, "parallel") ? "parallel" : "seri= al"; - if (virJSONValueObjectAppendString(data, "device", + backendType =3D STRPREFIX(chrID, "parallel") ? "parallel" : "seria= l"; + if (virJSONValueObjectAppendString(backendData, "device", chr->data.file.path) < 0) return NULL; break; case VIR_DOMAIN_CHR_TYPE_TCP: - backend_type =3D "socket"; + backendType =3D "socket"; addr =3D qemuMonitorJSONBuildInetSocketAddress(chr->data.tcp.host, chr->data.tcp.service= ); if (!addr || - virJSONValueObjectAppend(data, "addr", &addr) < 0) + virJSONValueObjectAppend(backendData, "addr", &addr) < 0) return NULL; telnet =3D chr->data.tcp.protocol =3D=3D VIR_DOMAIN_CHR_TCP_PROTOC= OL_TELNET; if (chr->data.tcp.listen && - virJSONValueObjectAppendBoolean(data, "wait", false) < 0) + virJSONValueObjectAppendBoolean(backendData, "wait", false) < = 0) return NULL; - if (virJSONValueObjectAppendBoolean(data, "telnet", telnet) < 0 || - virJSONValueObjectAppendBoolean(data, "server", chr->data.tcp.= listen) < 0) + if (virJSONValueObjectAppendBoolean(backendData, "telnet", telnet)= < 0 || + virJSONValueObjectAppendBoolean(backendData, "server", chr->da= ta.tcp.listen) < 0) return NULL; if (chr->data.tcp.tlscreds) { if (!(tlsalias =3D qemuAliasTLSObjFromSrcAlias(chrID))) return NULL; - if (virJSONValueObjectAppendString(data, "tls-creds", tlsalias= ) < 0) + if (virJSONValueObjectAppendString(backendData, "tls-creds", t= lsalias) < 0) return NULL; } - if (qemuMonitorJSONBuildChrChardevReconnect(data, &chr->data.tcp.r= econnect) < 0) + if (qemuMonitorJSONBuildChrChardevReconnect(backendData, &chr->dat= a.tcp.reconnect) < 0) return NULL; break; case VIR_DOMAIN_CHR_TYPE_UDP: - backend_type =3D "udp"; + backendType =3D "udp"; host =3D chr->data.udp.connectHost; if (!host) host =3D ""; addr =3D qemuMonitorJSONBuildInetSocketAddress(host, chr->data.udp.connect= Service); if (!addr || - virJSONValueObjectAppend(data, "remote", &addr) < 0) + virJSONValueObjectAppend(backendData, "remote", &addr) < 0) return NULL; host =3D chr->data.udp.bindHost; @@ -6701,34 +6701,34 @@ qemuMonitorJSONAttachCharDevGetProps(const char *ch= rID, port =3D ""; addr =3D qemuMonitorJSONBuildInetSocketAddress(host, port); if (!addr || - virJSONValueObjectAppend(data, "local", &addr) < 0) + virJSONValueObjectAppend(backendData, "local", &addr) < 0) return NULL; } break; case VIR_DOMAIN_CHR_TYPE_UNIX: - backend_type =3D "socket"; + backendType =3D "socket"; addr =3D qemuMonitorJSONBuildUnixSocketAddress(chr->data.nix.path); if (!addr || - virJSONValueObjectAppend(data, "addr", &addr) < 0) + virJSONValueObjectAppend(backendData, "addr", &addr) < 0) return NULL; if (chr->data.nix.listen && - virJSONValueObjectAppendBoolean(data, "wait", false) < 0) + virJSONValueObjectAppendBoolean(backendData, "wait", false) < = 0) return NULL; - if (virJSONValueObjectAppendBoolean(data, "server", chr->data.nix.= listen) < 0) + if (virJSONValueObjectAppendBoolean(backendData, "server", chr->da= ta.nix.listen) < 0) return NULL; - if (qemuMonitorJSONBuildChrChardevReconnect(data, &chr->data.nix.r= econnect) < 0) + if (qemuMonitorJSONBuildChrChardevReconnect(backendData, &chr->dat= a.nix.reconnect) < 0) return NULL; break; case VIR_DOMAIN_CHR_TYPE_SPICEVMC: - backend_type =3D "spicevmc"; + backendType =3D "spicevmc"; - if (virJSONValueObjectAppendString(data, "type", + if (virJSONValueObjectAppendString(backendData, "type", virDomainChrSpicevmcTypeToStrin= g(chr->data.spicevmc)) < 0) return NULL; break; @@ -6749,14 +6749,14 @@ qemuMonitorJSONAttachCharDevGetProps(const char *ch= rID, } if (chr->logfile && - virJSONValueObjectAdd(&data, + virJSONValueObjectAdd(&backendData, "s:logfile", chr->logfile, "T:logappend", chr->logappend, NULL) < 0) return NULL; - if (virJSONValueObjectAppendString(backend, "type", backend_type) < 0 = || - virJSONValueObjectAppend(backend, "data", &data) < 0) + if (virJSONValueObjectAppendString(backend, "type", backendType) < 0 || + virJSONValueObjectAppend(backend, "data", &backendData) < 0) return NULL; if (virJSONValueObjectAdd(&props, --=20 2.31.1 From nobody Sat Apr 20 06:40:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1637326688; cv=none; d=zohomail.com; s=zohoarc; b=ljQ3PjGv6tRHlAkzNE3eeBsQpiZbx9ZZEHmODNSdgogMWc4OdHsbkG+Twj/lnfTpeF11YCBpeVq8xDj5ugta0zDWfKxqzkNjozWTkzGdTLGq+UdXUGyIP0dbwCTUpf4hP6v4nU9G4TWzsV7Jrd0INdtQrqsQkRMSBDm9UwNfsTg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1637326688; h=Content-Type:Content-Transfer-Encoding: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=5FvMSWVPMNEw6/7psxftdzbFDmrgTktdvTYd8JgxljI=; b=EGZoqnlB8ao8r6IG1Ye5+CAk+k4y6jM6lX6U1Md3CS90zXo8jQkIIjEhHdQNsEm2zW8rwdVap9Gar7ra+7hs4a/d1a/dTGbU+qhxdM6Avxn+7KTN3deuT/5Tbmxx1J7/Zys/wCqY/Hq24PKf3vWu9kOo3VnRvFPR2HiVQlaqf9w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1637326688496313.68806325407513; Fri, 19 Nov 2021 04:58:08 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-571-e_2Q8RY4MYiQlTCYnWi4ZA-1; Fri, 19 Nov 2021 07:58:06 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6861D1006AA1; Fri, 19 Nov 2021 12:58:00 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 44C385C1D5; Fri, 19 Nov 2021 12:58:00 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 140B01832DD2; Fri, 19 Nov 2021 12:58:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1AJCvwOF005448 for ; Fri, 19 Nov 2021 07:57:58 -0500 Received: by smtp.corp.redhat.com (Postfix) id 38FA960C81; Fri, 19 Nov 2021 12:57:58 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id 809C960BF1 for ; Fri, 19 Nov 2021 12:57:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637326687; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=5FvMSWVPMNEw6/7psxftdzbFDmrgTktdvTYd8JgxljI=; b=UnzRVWH5k5QhuJoLQPZmizG0JniiNotACQ6vBcyZaEjC5MN4yawWQI+DjOwMLFqjLhtxr4 ykvczSwW7AbLGumslyAYq11dwf4xE0/tqkjPHoRM5OQxWvqydOVX7dgYpJU71fRGpMorVQ ymtuH/eWXEg/NjNTT4KVRL3SZA0SvAQ= X-MC-Unique: e_2Q8RY4MYiQlTCYnWi4ZA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH v2 2/3] qemuMonitorJSONBuildChrChardevReconnect: Unify with qemuBuildChrChardevReconnectStr Date: Fri, 19 Nov 2021 13:57:43 +0100 Message-Id: <1dc5b4a52281ebe5f8f7c2717bd80782fcdbd717.1637326546.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1637326689657100002 Content-Type: text/plain; charset="utf-8" When formatting the commandline we explicitly set the reconnect timeout to 0 when it's disabled even when that's the default. Do the same in the monitor/hotplug code. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_monitor_json.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 0c66086598..508d56994c 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6602,10 +6602,22 @@ static int qemuMonitorJSONBuildChrChardevReconnect(virJSONValue *object, const virDomainChrSourceReconnectD= ef *def) { - if (def->enabled !=3D VIR_TRISTATE_BOOL_YES) + int timeout =3D 0; + + switch (def->enabled) { + case VIR_TRISTATE_BOOL_ABSENT: + case VIR_TRISTATE_BOOL_LAST: return 0; - return virJSONValueObjectAppendNumberUint(object, "reconnect", def->ti= meout); + case VIR_TRISTATE_BOOL_YES: + timeout =3D def->timeout; + break; + + case VIR_TRISTATE_BOOL_NO: + break; + } + + return virJSONValueObjectAppendNumberUint(object, "reconnect", timeout= ); } static virJSONValue * --=20 2.31.1 From nobody Sat Apr 20 06:40:12 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1637326699; cv=none; d=zohomail.com; s=zohoarc; b=Npbs1e8+100UON0Cf/04Uj2FBWLY0l+hzdqYMtMm6B7AqEqKUIvN9WHlH6G+VWQicBt9MGLkiYdaOhHkQDxWmjPDvZ5hPb17YUPxNG6+zJLBjOg91VdHW6LOOcqdLsafNc9vbziFdRNe7uOzV/N+HJQfAG5V6Uv2NSI7etjYq8s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1637326699; h=Content-Type:Content-Transfer-Encoding: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=asGu1Qic+/IVW3JguHDjIckwlLJica80cisuPiU1+8s=; b=AO4Zx11YDKWnAdD6R75rBZiA4dMrnhsGODg3zxBK5kIqMaOAyiTSYuNgesGavvu8x/jni9yDsek2tdTN04DFEKSrLP3GVweJPn65w2CrM8qv62DwnM9ijhCLrng6veU981EVgePCh9qrca/l221Ch7KXLN2X/sr5BezxZvOj8dA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1637326699784578.919572994168; Fri, 19 Nov 2021 04:58:19 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-225-DM8cNBDvMfG3VxAotNQeTw-1; Fri, 19 Nov 2021 07:58:13 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5452210151E5; Fri, 19 Nov 2021 12:58:04 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3ACE74ABA8; Fri, 19 Nov 2021 12:58:04 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 0C0EB1832DD8; Fri, 19 Nov 2021 12:58:04 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1AJCvxAZ005456 for ; Fri, 19 Nov 2021 07:57:59 -0500 Received: by smtp.corp.redhat.com (Postfix) id 5AC7960C81; Fri, 19 Nov 2021 12:57:59 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id AC1B260BF1 for ; Fri, 19 Nov 2021 12:57:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637326698; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=asGu1Qic+/IVW3JguHDjIckwlLJica80cisuPiU1+8s=; b=FoCAaMayB+8kHntHPGl6KHG8YqXJ9Zk6bh3+wWlyudaySL7T1ocl/HrUwwm7ttA5HSQMYm Ry58HI17I8SHjr+ZCW+afg/n19/lFd9Qb3Gr38BWut7fYbfnbZwh9bNsdnia0/dKLlC2GM Gdi3B+fkNUI5Po3bogwqp24W9DMJu2E= X-MC-Unique: DM8cNBDvMfG3VxAotNQeTw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH v2 3/3] qemuMonitorJSONAttachCharDevGetProps: Modernize construction of JSON objects Date: Fri, 19 Nov 2021 13:57:44 +0100 Message-Id: <4bae1e47f03e803f52ca5861a97c31fecf2371d9.1637326546.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1637326700195100001 Content-Type: text/plain; charset="utf-8" Use 'virJSONValueObjectAdd' instead of the step-by-step manual JSON object building. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_monitor_json.c | 190 ++++++++++++++++------------------- 1 file changed, 89 insertions(+), 101 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 508d56994c..75b1209cc5 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6598,151 +6598,136 @@ int qemuMonitorJSONGetTPMTypes(qemuMonitor *mon, return qemuMonitorJSONGetStringArray(mon, "query-tpm-types", tpmtypes); } -static int -qemuMonitorJSONBuildChrChardevReconnect(virJSONValue *object, - const virDomainChrSourceReconnectD= ef *def) -{ - int timeout =3D 0; - - switch (def->enabled) { - case VIR_TRISTATE_BOOL_ABSENT: - case VIR_TRISTATE_BOOL_LAST: - return 0; - - case VIR_TRISTATE_BOOL_YES: - timeout =3D def->timeout; - break; - - case VIR_TRISTATE_BOOL_NO: - break; - } - - return virJSONValueObjectAppendNumberUint(object, "reconnect", timeout= ); -} static virJSONValue * qemuMonitorJSONAttachCharDevGetProps(const char *chrID, const virDomainChrSourceDef *chr) { g_autoptr(virJSONValue) props =3D NULL; - g_autoptr(virJSONValue) backend =3D virJSONValueNewObject(); + g_autoptr(virJSONValue) backend =3D NULL; g_autoptr(virJSONValue) backendData =3D virJSONValueNewObject(); - g_autoptr(virJSONValue) addr =3D NULL; const char *backendType =3D NULL; - const char *host; - const char *port; - g_autofree char *tlsalias =3D NULL; - bool telnet; switch ((virDomainChrType)chr->type) { case VIR_DOMAIN_CHR_TYPE_NULL: - backendType =3D "null"; - break; - case VIR_DOMAIN_CHR_TYPE_VC: - backendType =3D "vc"; - break; - case VIR_DOMAIN_CHR_TYPE_PTY: - backendType =3D "pty"; + backendType =3D virDomainChrTypeToString(chr->type); break; case VIR_DOMAIN_CHR_TYPE_FILE: backendType =3D "file"; - if (virJSONValueObjectAppendString(backendData, "out", chr->data.f= ile.path) < 0) - return NULL; if (virJSONValueObjectAdd(&backendData, + "s:out", chr->data.file.path, "T:append", chr->data.file.append, NULL) < 0) return NULL; + break; case VIR_DOMAIN_CHR_TYPE_DEV: - backendType =3D STRPREFIX(chrID, "parallel") ? "parallel" : "seria= l"; - if (virJSONValueObjectAppendString(backendData, "device", - chr->data.file.path) < 0) + if (STRPREFIX(chrID, "parallel")) + backendType =3D "parallel"; + else + backendType =3D "serial"; + + if (virJSONValueObjectAdd(&backendData, + "s:device", chr->data.file.path, + NULL) < 0) return NULL; + break; - case VIR_DOMAIN_CHR_TYPE_TCP: + case VIR_DOMAIN_CHR_TYPE_UNIX: + case VIR_DOMAIN_CHR_TYPE_TCP: { + g_autofree char *tlsalias =3D NULL; + g_autoptr(virJSONValue) addr =3D NULL; + virTristateBool waitval =3D VIR_TRISTATE_BOOL_ABSENT; + virTristateBool telnet =3D VIR_TRISTATE_BOOL_ABSENT; + bool server =3D false; + int reconnect =3D -1; + backendType =3D "socket"; - addr =3D qemuMonitorJSONBuildInetSocketAddress(chr->data.tcp.host, - chr->data.tcp.service= ); - if (!addr || - virJSONValueObjectAppend(backendData, "addr", &addr) < 0) - return NULL; - telnet =3D chr->data.tcp.protocol =3D=3D VIR_DOMAIN_CHR_TCP_PROTOC= OL_TELNET; + if (chr->type =3D=3D VIR_DOMAIN_CHR_TYPE_TCP) { + telnet =3D virTristateBoolFromBool(chr->data.tcp.protocol =3D= =3D VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNET); - if (chr->data.tcp.listen && - virJSONValueObjectAppendBoolean(backendData, "wait", false) < = 0) - return NULL; + if (chr->data.tcp.listen) { + server =3D true; + waitval =3D VIR_TRISTATE_BOOL_NO; + } - if (virJSONValueObjectAppendBoolean(backendData, "telnet", telnet)= < 0 || - virJSONValueObjectAppendBoolean(backendData, "server", chr->da= ta.tcp.listen) < 0) - return NULL; - if (chr->data.tcp.tlscreds) { - if (!(tlsalias =3D qemuAliasTLSObjFromSrcAlias(chrID))) + if (chr->data.tcp.tlscreds && + !(tlsalias =3D qemuAliasTLSObjFromSrcAlias(chrID))) return NULL; - if (virJSONValueObjectAppendString(backendData, "tls-creds", t= lsalias) < 0) + if (!(addr =3D qemuMonitorJSONBuildInetSocketAddress(chr->data= .tcp.host, + chr->data.t= cp.service))) return NULL; - } - if (qemuMonitorJSONBuildChrChardevReconnect(backendData, &chr->dat= a.tcp.reconnect) < 0) - return NULL; - break; - - case VIR_DOMAIN_CHR_TYPE_UDP: - backendType =3D "udp"; - host =3D chr->data.udp.connectHost; - if (!host) - host =3D ""; - addr =3D qemuMonitorJSONBuildInetSocketAddress(host, - chr->data.udp.connect= Service); - if (!addr || - virJSONValueObjectAppend(backendData, "remote", &addr) < 0) - return NULL; + if (chr->data.tcp.reconnect.enabled =3D=3D VIR_TRISTATE_BOOL_Y= ES) + reconnect =3D chr->data.tcp.reconnect.timeout; + else if (chr->data.tcp.reconnect.enabled =3D=3D VIR_TRISTATE_B= OOL_NO) + reconnect =3D 0; + } else { + if (chr->data.nix.listen) { + server =3D true; + waitval =3D VIR_TRISTATE_BOOL_NO; + } - host =3D chr->data.udp.bindHost; - port =3D chr->data.udp.bindService; - if (host || port) { - if (!host) - host =3D ""; - if (!port) - port =3D ""; - addr =3D qemuMonitorJSONBuildInetSocketAddress(host, port); - if (!addr || - virJSONValueObjectAppend(backendData, "local", &addr) < 0) + if (!(addr =3D qemuMonitorJSONBuildUnixSocketAddress(chr->data= .nix.path))) return NULL; + + if (chr->data.nix.reconnect.enabled =3D=3D VIR_TRISTATE_BOOL_Y= ES) + reconnect =3D chr->data.tcp.reconnect.timeout; + else if (chr->data.nix.reconnect.enabled =3D=3D VIR_TRISTATE_B= OOL_NO) + reconnect =3D 0; } + + if (virJSONValueObjectAdd(&backendData, + "a:addr", &addr, + "T:wait", waitval, + "T:telnet", telnet, + "b:server", server, + "S:tls-creds", tlsalias, + "k:reconnect", reconnect, + NULL) < 0) + return NULL; + } break; - case VIR_DOMAIN_CHR_TYPE_UNIX: - backendType =3D "socket"; - addr =3D qemuMonitorJSONBuildUnixSocketAddress(chr->data.nix.path); + case VIR_DOMAIN_CHR_TYPE_UDP: { + g_autoptr(virJSONValue) local =3D NULL; + g_autoptr(virJSONValue) remote =3D NULL; - if (!addr || - virJSONValueObjectAppend(backendData, "addr", &addr) < 0) - return NULL; + backendType =3D "udp"; - if (chr->data.nix.listen && - virJSONValueObjectAppendBoolean(backendData, "wait", false) < = 0) + if (!(remote =3D qemuMonitorJSONBuildInetSocketAddress(NULLSTR_EMP= TY(chr->data.udp.connectHost), + chr->data.udp= .connectService))) return NULL; - if (virJSONValueObjectAppendBoolean(backendData, "server", chr->da= ta.nix.listen) < 0) - return NULL; + if (chr->data.udp.bindHost || chr->data.udp.bindService) { + if (!(local =3D qemuMonitorJSONBuildInetSocketAddress(NULLSTR_= EMPTY(chr->data.udp.bindHost), + NULLSTR_EM= PTY(chr->data.udp.bindService)))) + return NULL; + } - if (qemuMonitorJSONBuildChrChardevReconnect(backendData, &chr->dat= a.nix.reconnect) < 0) + if (virJSONValueObjectAdd(&backendData, + "a:remote", &remote, + "A:local", &local, + NULL) < 0) return NULL; + } break; case VIR_DOMAIN_CHR_TYPE_SPICEVMC: backendType =3D "spicevmc"; - if (virJSONValueObjectAppendString(backendData, "type", - virDomainChrSpicevmcTypeToStrin= g(chr->data.spicevmc)) < 0) + if (virJSONValueObjectAdd(&backendData, + "s:type", virDomainChrSpicevmcTypeToStri= ng(chr->data.spicevmc), + NULL) < 0) return NULL; + break; case VIR_DOMAIN_CHR_TYPE_SPICEPORT: @@ -6760,15 +6745,18 @@ qemuMonitorJSONAttachCharDevGetProps(const char *ch= rID, return NULL; } - if (chr->logfile && - virJSONValueObjectAdd(&backendData, - "s:logfile", chr->logfile, - "T:logappend", chr->logappend, - NULL) < 0) - return NULL; + if (chr->logfile) { + if (virJSONValueObjectAdd(&backendData, + "s:logfile", chr->logfile, + "T:logappend", chr->logappend, + NULL) < 0) + return NULL; + } - if (virJSONValueObjectAppendString(backend, "type", backendType) < 0 || - virJSONValueObjectAppend(backend, "data", &backendData) < 0) + if (virJSONValueObjectAdd(&backend, + "s:type", backendType, + "A:data", &backendData, + NULL) < 0) return NULL; if (virJSONValueObjectAdd(&props, --=20 2.31.1