From nobody Mon Dec 15 03:10:16 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1516641394386769.5515081311218; Mon, 22 Jan 2018 09:16:34 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3A6615B2FC; Mon, 22 Jan 2018 17:16:33 +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 0783A6267D; Mon, 22 Jan 2018 17:16:33 +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 B8D9918033DC; Mon, 22 Jan 2018 17:16:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w0MHGMD1028688 for ; Mon, 22 Jan 2018 12:16:22 -0500 Received: by smtp.corp.redhat.com (Postfix) id 95FE01715A; Mon, 22 Jan 2018 17:16:22 +0000 (UTC) Received: from antique-work.brq.redhat.com (unknown [10.43.2.152]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8770617145; Mon, 22 Jan 2018 17:16:21 +0000 (UTC) From: Pavel Hrdina To: libvir-list@redhat.com Date: Mon, 22 Jan 2018 18:16:03 +0100 Message-Id: <9705ef69046a1ca78b66b2dfc831e50a2c239ff4.1516640486.git.phrdina@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Cc: lars@karlitski.net Subject: [libvirt] [dbus RFC 05/11] connect: don't use default libvirt authentication callback 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 22 Jan 2018 17:16:33 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" We need to implement our own authentication callback because the default one ask for credentials using STDIO. This is not suitable behavior for daemon. For now we will require usage of client configuration file for libvirt to provide credentials for drivers that require authentication [1]. [1] Signed-off-by: Pavel Hrdina Reviewed-by: Daniel P. Berrange --- src/connect.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/connect.c b/src/connect.c index 8d958c2..9de764c 100644 --- a/src/connect.c +++ b/src/connect.c @@ -6,6 +6,34 @@ #include #include =20 +static int virtDBusConnectCredType[] =3D { + VIR_CRED_AUTHNAME, + VIR_CRED_ECHOPROMPT, + VIR_CRED_REALM, + VIR_CRED_PASSPHRASE, + VIR_CRED_NOECHOPROMPT, + VIR_CRED_EXTERNAL, +}; + +static int +virtDBusConnectAuthCallback(virConnectCredentialPtr cred VIR_ATTR_UNUSED, + unsigned int ncred VIR_ATTR_UNUSED, + void *cbdata) +{ + sd_bus_error *error =3D cbdata; + + return virtDBusUtilSetError(error, + "Interactive authentication is not support= ed. " + "Use client configuration file for libvirt= ."); +} + +static virConnectAuth virtDBusConnectAuth =3D { + virtDBusConnectCredType, + VIRT_ARRAY_CARDINALITY(virtDBusConnectCredType), + virtDBusConnectAuthCallback, + NULL, +}; + static int virtDBusConnectOpen(virtDBusConnect *connect, sd_bus_error *error) @@ -13,8 +41,10 @@ virtDBusConnectOpen(virtDBusConnect *connect, if (connect->connection) return 0; =20 + virtDBusConnectAuth.cbdata =3D error; + connect->connection =3D virConnectOpenAuth(connect->uri, - virConnectAuthPtrDefault, 0); + &virtDBusConnectAuth, 0); if (!connect->connection) return virtDBusUtilSetLastVirtError(error); =20 --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list