From nobody Fri May 3 06:23:11 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=1615895070; cv=none; d=zohomail.com; s=zohoarc; b=Zjnmvc6FNsaOlIDanfHLcgQtvuSiZHxspThS0MIO183dKwCK5RWHRafhKd31dVTzQ8r8h1HPfrnsfBLckuQnzKeU1oRZ8VKPzvmT7ui8+7x5QW9N+Wrz2IbUiybaapiy5OyZR9nGdekaYD3dHsaI3STsL5KwuHvj1+kpGS7loN0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615895070; 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=xPD8v8Fjx88sVsxVaNKpN/9xJxjkXDlT4s8V7nnuIHU=; b=JfnGbyPggbAPZo325LTOuV7t5doBF1TsmCIzI8uU23GQ9gA1ViiAPVHa85Qs7BXsgpEio01yjAtMb/SKNJg105WU7kYdpxOeUXg3dN9Ok6B3zTLNiuzikSnS1cm3ue1ZVjRM36KVENyyZh91MKUlGYAtq/t7wupey0rQ3H4h83s= 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) header.from= 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 1615895070236542.8944300926587; Tue, 16 Mar 2021 04:44:30 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-471-8K7R4MhHNoOixl0528U-bg-1; Tue, 16 Mar 2021 07:44:23 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8DA2FEC1A0; Tue, 16 Mar 2021 11:44:17 +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 03886189B6; Tue, 16 Mar 2021 11:44:17 +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 777FA18006D9; Tue, 16 Mar 2021 11:44:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12GBiCJN024655 for ; Tue, 16 Mar 2021 07:44:12 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5A9A119D7D; Tue, 16 Mar 2021 11:44:12 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.194.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id D134319D61 for ; Tue, 16 Mar 2021 11:44:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615895069; 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=xPD8v8Fjx88sVsxVaNKpN/9xJxjkXDlT4s8V7nnuIHU=; b=buMAWC2/OOWiZTggHyZxbyia14R8CgBsG/78gAW5L6lpPlWb8+sw136JxzbTELnYiW3QsR 7yRB3ZpyreqQEmK5Cv+x3LUh2ucynuR52IGexOmn4Hn2LSdYJk7VizuR9tArLHluUifTnM dP6jHlW4H9rMaIv3IvfHD9PC7e157V0= X-MC-Unique: 8K7R4MhHNoOixl0528U-bg-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH v2 1/2] network: Implement virConnectSupportsFeature() Date: Tue, 16 Mar 2021 12:44:05 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 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.11 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) Content-Type: text/plain; charset="utf-8" So far, it was not needed, but shortly a client will want to know whether virNetworkUpdate() API is fixed or not. See next commits for more info. Side note, this driver's implementation is called only when using sub-driver's connection, i.e. "network:///system". For any other URI the corresponding hypervisor's driver callback is called. Signed-off-by: Michal Privoznik Reviewed-by: Martin Kletzander --- src/network/bridge_driver.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 3c7a49b115..7c9e36c625 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -944,6 +944,35 @@ static int networkConnectIsAlive(virConnectPtr conn G_= GNUC_UNUSED) } =20 =20 +static int +networkConnectSupportsFeature(virConnectPtr conn, int feature) +{ + if (virConnectSupportsFeatureEnsureACL(conn) < 0) + return -1; + + switch ((virDrvFeature) feature) { + case VIR_DRV_FEATURE_MIGRATION_V2: + case VIR_DRV_FEATURE_MIGRATION_V3: + case VIR_DRV_FEATURE_MIGRATION_P2P: + case VIR_DRV_FEATURE_MIGRATE_CHANGE_PROTECTION: + case VIR_DRV_FEATURE_FD_PASSING: + case VIR_DRV_FEATURE_TYPED_PARAM_STRING: + case VIR_DRV_FEATURE_XML_MIGRATABLE: + case VIR_DRV_FEATURE_MIGRATION_OFFLINE: + case VIR_DRV_FEATURE_MIGRATION_PARAMS: + case VIR_DRV_FEATURE_MIGRATION_DIRECT: + case VIR_DRV_FEATURE_MIGRATION_V1: + case VIR_DRV_FEATURE_PROGRAM_KEEPALIVE: + case VIR_DRV_FEATURE_REMOTE: + case VIR_DRV_FEATURE_REMOTE_CLOSE_CALLBACK: + case VIR_DRV_FEATURE_REMOTE_EVENT_CALLBACK: + default: + return 0; + } +} + + + static char * networkBuildDnsmasqLeaseTime(virNetworkDHCPLeaseTimeDefPtr lease) { @@ -5630,6 +5659,7 @@ static virHypervisorDriver networkHypervisorDriver = =3D { .connectIsEncrypted =3D networkConnectIsEncrypted, /* 4.1.0 */ .connectIsSecure =3D networkConnectIsSecure, /* 4.1.0 */ .connectIsAlive =3D networkConnectIsAlive, /* 4.1.0 */ + .connectSupportsFeature =3D networkConnectSupportsFeature, /* 7.2.0 */ }; =20 =20 --=20 2.26.2 From nobody Fri May 3 06:23:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.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 63.128.21.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=1615895085; cv=none; d=zohomail.com; s=zohoarc; b=dHErA3Ioem2kRKtsuZnUl3jOsRb/QkQnPNm9FAAmHanZBpz9UtcudFPwi3x9iniU49B1d0zyfJFhy0AAksdrWZGxPUhr3/QxblrbxJGNeFn2QKNeuNqp3W2qjgkK5d0WvE6codjFN1kEyxgPdT0JpYfDIp0vA9kQph0ZHjdBVLI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615895085; 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=1zh4mTZEB5bZ53xeiGRPJMZLdWLpGFT3stf7HIMLTe4=; b=k9Jb59nOQuJgw5oEoEmaDWMj3+Fuj+kmyZCXrprdX4dfUKKWyasHGaUyQuAc/iSRFRXbZ8Na4dDJhbxZCaoBLBjNaxLnqZUKRLu4IMb7fVDpfCUxwYuxG5U/qWT5oLZ6LGgclFp+TCsRtIrF+yupTwEIwtH9IHXHM6PQlZ3Pu/w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 161589508558099.84952696965888; Tue, 16 Mar 2021 04:44:45 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-418-fzs0379RNlGrOKvcOnA2DQ-1; Tue, 16 Mar 2021 07:44:42 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D4D8A80D6A9; Tue, 16 Mar 2021 11:44:36 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AE04D5D9DC; Tue, 16 Mar 2021 11:44:36 +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 6A7F04A717; Tue, 16 Mar 2021 11:44:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12GBiDde024663 for ; Tue, 16 Mar 2021 07:44:13 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3551019D7D; Tue, 16 Mar 2021 11:44:13 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.194.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id ABDE919D61 for ; Tue, 16 Mar 2021 11:44:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615895084; 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=1zh4mTZEB5bZ53xeiGRPJMZLdWLpGFT3stf7HIMLTe4=; b=guUmlRO6bL5HANG5g7Hl0ffkuiwRUXnXs+F6Y6H8iP+1e/zV0JK8N8zjQdz8/77ZNezTCj f+UqVxDFjhFzOfjc5fKQnJckVwfiLCcCubRblt0HDK0Xepp+N4w9/42nSv9mMvNw0mztnB it1UGJccMJYMQJvJ3NN+RYrhSp7A5RU= X-MC-Unique: fzs0379RNlGrOKvcOnA2DQ-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH v2 2/2] lib: Fix calling of virNetworkUpdate() driver callback Date: Tue, 16 Mar 2021 12:44:06 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 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.14 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) Content-Type: text/plain; charset="utf-8" The order in which virNetworkUpdate() accepts @section and @command arguments is not the same as in which it passes them onto networkUpdate() callback. Until recently, it did not really matter, because calling the API on client side meant arguments were encoded in reversed order (compared to the public API), but then on the server it was fixed again - because the server decoded RPC (still swapped), called public API (still swapped) and in turn called the network driver callback (with reversing the order - so magically fixing the order). Long story short, if the public API is called even number of times those swaps cancel each other out. The problem is when the API is called an odd numbed of times - which happens with split daemons and the right URI. There's one call in the client (e.g. virsh net-update), the other in a hypervisor daemon (say virtqemud) which ends up calling the API in the virnetworkd. The fix is obvious - fix the order in which arguments are passed to the callback. But, to maintain compatibility with older, yet unfixed, daemons new connection feature is introduced. The feature is detected just before calling the callback and allows client to pass arguments in correct order (talking to fixed daemon) or in reversed order (talking to older daemon). Unfortunately, older client talking to newer daemon can't be fixed. Let's hope that it's less frequent scenario. Fixes: 574b9bc66b6b10cc4cf50f299c3f0ff55f2cbefb Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=3D1870552 Signed-off-by: Michal Privoznik Reviewed-by: Martin Kletzander --- src/esx/esx_driver.c | 3 +++ src/libvirt-network.c | 24 ++++++++++++++++++++++-- src/libvirt_internal.h | 5 +++++ src/libxl/libxl_driver.c | 1 + src/lxc/lxc_driver.c | 1 + src/network/bridge_driver.c | 2 ++ src/openvz/openvz_driver.c | 1 + src/qemu/qemu_driver.c | 1 + src/remote/remote_daemon_dispatch.c | 1 + src/test/test_driver.c | 1 + 10 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 96cc8bda0d..5c96ab4de0 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -1037,6 +1037,9 @@ esxConnectSupportsFeature(virConnectPtr conn, int fea= ture) return priv->vCenter && supportsVMotion =3D=3D esxVI_Boolean_True ? 1 : 0; =20 + case VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER: + return 1; + case VIR_DRV_FEATURE_FD_PASSING: case VIR_DRV_FEATURE_MIGRATE_CHANGE_PROTECTION: case VIR_DRV_FEATURE_MIGRATION_DIRECT: diff --git a/src/libvirt-network.c b/src/libvirt-network.c index b84389f762..145487d599 100644 --- a/src/libvirt-network.c +++ b/src/libvirt-network.c @@ -543,8 +543,28 @@ virNetworkUpdate(virNetworkPtr network, =20 if (conn->networkDriver && conn->networkDriver->networkUpdate) { int ret; - ret =3D conn->networkDriver->networkUpdate(network, section, comma= nd, - parentIndex, xml, flags); + int rc; + + /* Since its introduction in v0.10.2-rc1~9 the @section and @comma= nd + * arguments were mistakenly swapped when passed to driver's callb= ack. + * Detect if the other side is fixed already or not. */ + rc =3D VIR_DRV_SUPPORTS_FEATURE(conn->driver, conn, + VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_C= ORRECT_ORDER); + + VIR_DEBUG("Argument order feature detection returned: %d", rc); + if (rc < 0) + goto error; + + if (rc =3D=3D 0) { + /* Feature not supported, preserve swapped order */ + ret =3D conn->networkDriver->networkUpdate(network, section, c= ommand, + parentIndex, xml, fla= gs); + } else { + /* Feature supported, correct order can be used */ + ret =3D conn->networkDriver->networkUpdate(network, command, s= ection, + parentIndex, xml, fla= gs); + } + if (ret < 0) goto error; return ret; diff --git a/src/libvirt_internal.h b/src/libvirt_internal.h index 2bf7744bd6..f4e592922d 100644 --- a/src/libvirt_internal.h +++ b/src/libvirt_internal.h @@ -126,6 +126,11 @@ typedef enum { * Support for driver close callback rpc */ VIR_DRV_FEATURE_REMOTE_CLOSE_CALLBACK =3D 15, + + /* + * Whether the virNetworkUpdate() API implementation passes arguments = to + * the driver's callback in correct order. */ + VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER =3D 16, } virDrvFeature; =20 =20 diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index e3d769b5d9..f82095ffc7 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -5752,6 +5752,7 @@ libxlConnectSupportsFeature(virConnectPtr conn, int f= eature) case VIR_DRV_FEATURE_TYPED_PARAM_STRING: case VIR_DRV_FEATURE_MIGRATION_PARAMS: case VIR_DRV_FEATURE_MIGRATION_P2P: + case VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER: return 1; case VIR_DRV_FEATURE_FD_PASSING: case VIR_DRV_FEATURE_MIGRATE_CHANGE_PROTECTION: diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 8e0ec82e0b..2db544c945 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1651,6 +1651,7 @@ lxcConnectSupportsFeature(virConnectPtr conn, int fea= ture) =20 switch ((virDrvFeature) feature) { case VIR_DRV_FEATURE_TYPED_PARAM_STRING: + case VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER: return 1; case VIR_DRV_FEATURE_FD_PASSING: case VIR_DRV_FEATURE_MIGRATE_CHANGE_PROTECTION: diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 7c9e36c625..14db9ffc82 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -951,6 +951,8 @@ networkConnectSupportsFeature(virConnectPtr conn, int f= eature) return -1; =20 switch ((virDrvFeature) feature) { + case VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER: + return 1; case VIR_DRV_FEATURE_MIGRATION_V2: case VIR_DRV_FEATURE_MIGRATION_V3: case VIR_DRV_FEATURE_MIGRATION_P2P: diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index e898af85ab..9f65dff5d1 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -1992,6 +1992,7 @@ openvzConnectSupportsFeature(virConnectPtr conn G_GNU= C_UNUSED, int feature) switch ((virDrvFeature) feature) { case VIR_DRV_FEATURE_MIGRATION_PARAMS: case VIR_DRV_FEATURE_MIGRATION_V3: + case VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER: return 1; case VIR_DRV_FEATURE_FD_PASSING: case VIR_DRV_FEATURE_MIGRATE_CHANGE_PROTECTION: diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 16c5ccae45..0ca08b3292 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1238,6 +1238,7 @@ qemuConnectSupportsFeature(virConnectPtr conn, int fe= ature) case VIR_DRV_FEATURE_XML_MIGRATABLE: case VIR_DRV_FEATURE_MIGRATION_OFFLINE: case VIR_DRV_FEATURE_MIGRATION_PARAMS: + case VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER: return 1; case VIR_DRV_FEATURE_MIGRATION_DIRECT: case VIR_DRV_FEATURE_MIGRATION_V1: diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index 9700dba450..f57ad0e0c9 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -4995,6 +4995,7 @@ static int remoteDispatchConnectSupportsFeature(virNe= tServerPtr server G_GNUC_UN case VIR_DRV_FEATURE_XML_MIGRATABLE: case VIR_DRV_FEATURE_MIGRATION_OFFLINE: case VIR_DRV_FEATURE_MIGRATION_PARAMS: + case VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER: default: if ((supported =3D virConnectSupportsFeature(conn, args->feature))= < 0) goto cleanup; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 01b3e7bc82..019d61fce1 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1590,6 +1590,7 @@ testConnectSupportsFeature(virConnectPtr conn G_GNUC_= UNUSED, { switch ((virDrvFeature) feature) { case VIR_DRV_FEATURE_TYPED_PARAM_STRING: + case VIR_DRV_FEATURE_NETWORK_UPDATE_HAS_CORRECT_ORDER: return 1; case VIR_DRV_FEATURE_MIGRATION_V2: case VIR_DRV_FEATURE_MIGRATION_V3: --=20 2.26.2