From nobody Mon Feb 9 00:53:43 2026 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; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1551743730251333.6588751449748; Mon, 4 Mar 2019 15:55:30 -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 ED1563082A32; Mon, 4 Mar 2019 23:55:27 +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 B66F35D6B3; Mon, 4 Mar 2019 23:55:27 +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 265E741F3E; Mon, 4 Mar 2019 23:55:27 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x24NsJ2c002677 for ; Mon, 4 Mar 2019 18:54:19 -0500 Received: by smtp.corp.redhat.com (Postfix) id D2C4F5D71A; Mon, 4 Mar 2019 23:54:19 +0000 (UTC) Received: from mx1.redhat.com (ext-mx05.extmail.prod.ext.phx2.redhat.com [10.5.110.29]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C819E5D6B3 for ; Mon, 4 Mar 2019 23:54:19 +0000 (UTC) Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 841C53DD47 for ; Mon, 4 Mar 2019 23:54:18 +0000 (UTC) Received: by mail-qk1-f195.google.com with SMTP id y15so3852167qki.8 for ; Mon, 04 Mar 2019 15:54:18 -0800 (PST) Received: from localhost.localdomain ([177.188.104.249]) by smtp.gmail.com with ESMTPSA id d32sm4670568qtc.88.2019.03.04.15.54.15 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 04 Mar 2019 15:54:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Ls3P68EdKN3d14X1Y8OICIpHYn7KsC0ML8uW1wmq99I=; b=TOU0799hCJ/8w45eztyyI0BKd1K5Qkl6m7Vi9FO4Al7H3Vb9mwZC43MzGCJ+4Rjhqo M7tXEv2/rJGG//GiajpTWe53ppalQqyanYnkVEa2Ma9RmxJCADx5TC9tMdWZjlCgaMkG JGyYwYANYtsaVVMshv55kCp5O9ZZ4H0Mf4zz68w7apFITR3VKVjAJSvnREvUlGiIxw7Z LZf3sG5gtJ2dl3/GVpTHH9/+rTkyK6xyOOg3P7WKSE05KNk5eQLrZrlM7av+5x9xnAas YIgV/WrdmTUkqZLyGDTXT1wn0YmQCrLD54LKPZX9QYMP8wHWMhx+Yoy8Srx4QF+E9uvV D4vA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ls3P68EdKN3d14X1Y8OICIpHYn7KsC0ML8uW1wmq99I=; b=WbjsC0PtKl7FjvISh+EbdkFi7JInswceaymV8y5QCpuJCR7HD+DuB8gBUgOqmNTv3U Sz1l7w058ULmr6BdDS7pd48CpZc+zHRAcjKsj5aMR7aB/fa3tzSTWvslToNjJtbGYkYm B8V8XxCpEZA1YN6c9OsBu9ca9FzQ0cFFxErPQArhOGvvXn9aHMEJForvioauFfuwrVoA wpB/EezB3kuAmxw3hyfJuec+Xl43NXE4tYtT6QaYwhBr698edrC7uT/Pn4GQh0BtAgdW Q736KzN3uf3iGXyNeoTEZpLdURgsDgBDwBkUJuzb5hkk96MD1xM2ILEiawTgtBqBBsxM gUPQ== X-Gm-Message-State: APjAAAUr+M8/1FM3wykyUHVLHE2qEuMmcf1XabK2t/t9QPgNa5rj0K4g UkigncCzhMYHZ1PTaD7FfSklvBKv X-Google-Smtp-Source: APXvYqz/VMKaoLctA+N2fe02bFibHFmC1bUM3UkDInyHGmpv2HcIpJ9kze0SK3fJeFted9b3GnMopg== X-Received: by 2002:a37:4949:: with SMTP id w70mr15257349qka.52.1551743657097; Mon, 04 Mar 2019 15:54:17 -0800 (PST) From: Julio Faracco To: libvir-list@redhat.com Date: Mon, 4 Mar 2019 20:54:02 -0300 Message-Id: <20190304235404.16320-5-jcfaracco@gmail.com> In-Reply-To: <20190304235404.16320-1-jcfaracco@gmail.com> References: <20190304235404.16320-1-jcfaracco@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 04 Mar 2019 23:54:18 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 04 Mar 2019 23:54:18 +0000 (UTC) for IP:'209.85.222.195' DOMAIN:'mail-qk1-f195.google.com' HELO:'mail-qk1-f195.google.com' FROM:'jcfaracco@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.111 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_PASS) 209.85.222.195 mail-qk1-f195.google.com 209.85.222.195 mail-qk1-f195.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.29 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 4/6] lxc: Introduce lxcNetworkGetParseData() for 'lxc.net.' entry. 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: , 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.45]); Mon, 04 Mar 2019 23:55:28 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This commit moves old lxcNetworkGetParseData() to lxcNetworkGetParseDataLegacy() and create a new method for LXC version 3.X called lxcNetworkGetParseData(). This is same idea of method lxcNetworkGetParseDataLegacy(). In the future, it can be easy to remove or rebase, in case of deprecate 'lxc.network.foo' style. Signed-off-by: Julio Faracco --- src/lxc/lxc_native.c | 65 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c index 4d26d1a20b..de7145ef1b 100644 --- a/src/lxc/lxc_native.c +++ b/src/lxc/lxc_native.c @@ -603,6 +603,53 @@ lxcNetworkGetParseDataLegacy(lxcNetworkParseArray *net= works, return networks->data[index-1]; } =20 +static lxcNetworkParseDataPtr +lxcNetworkGetParseData(lxcNetworkParseArray *networks, + const char *name) +{ + size_t index, nnetworks =3D networks->nnetworks; + size_t i; + + sscanf(name, "lxc.net.%zu", &index); + + if (!nnetworks) { + if (VIR_ALLOC_N(networks->data, 1) < 0) + return NULL; + + if (VIR_ALLOC(networks->data[0]) < 0) + return NULL; + + networks->data[0]->index =3D index; + networks->nnetworks++; + + return networks->data[0]; + } + + for (i =3D 0; i < nnetworks; i++) { + if (networks->data[i]->index =3D=3D index) + return networks->data[i]; + } + + /* This is a new element in an existing array. */ + if (VIR_REALLOC_N(networks->data, nnetworks + 1) < 0) + return NULL; + + if (VIR_ALLOC(networks->data[nnetworks]) < 0) + return NULL; + + networks->nnetworks++; + + for (i =3D nnetworks; i > 0; i--) { + if (networks->data[i-1]->index < index) { + networks->data[i]->index =3D index; + return networks->data[i]; + } + memcpy(networks->data[i], networks->data[i-1], sizeof(lxcNetworkPa= rseData)); + } + + return NULL; +} + static int lxcNetworkParseDataIPs(const char *name, virConfValuePtr value, @@ -692,14 +739,25 @@ lxcNetworkParseDataSuffix(const char *entry, return 0; } =20 +static int +lxcNetworkParseDataEntryLegacy(const char *name, + virConfValuePtr value, + lxcNetworkParseData *parseData) +{ + const char *suffix =3D STRSKIP(name, "lxc.network."); + + return lxcNetworkParseDataSuffix(suffix, value, parseData); +} =20 static int lxcNetworkParseDataEntry(const char *name, virConfValuePtr value, lxcNetworkParseDataPtr parseData) { - const char *suffix =3D STRSKIP(name, "lxc.network."); + const char *suffix =3D STRSKIP(name, "lxc.net."); =20 + suffix =3D strchr(suffix, '.'); + suffix =3D STRSKIP(suffix, "."); return lxcNetworkParseDataSuffix(suffix, value, parseData); } =20 @@ -714,6 +772,11 @@ lxcNetworkWalkCallback(const char *name, virConfValueP= tr value, void *data) if (!(parseData =3D lxcNetworkGetParseDataLegacy(networks, name))) return -1; =20 + return lxcNetworkParseDataEntryLegacy(name, value, parseData); + } else if (STRPREFIX(name, "lxc.net.")) { + if (!(parseData =3D lxcNetworkGetParseData(networks, name))) + return -1; + return lxcNetworkParseDataEntry(name, value, parseData); } =20 --=20 2.19.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list