From 0ebb057a2abe2df11e1d7c2c2c64cb21fdaa8e2a Mon Sep 17 00:00:00 2001 From: Julio Faracco Date: Mon, 18 Feb 2019 16:09:06 -0300 Subject: [PATCH] lxc: Introduce lxcNetworkParseDataEntry Refactor lxcNetworkWalkCallback to be a simple method to handle both possible network settings with indexes or the simple one. It is better the decouple the whole algorithm to parse data to only parse which entry type libvirt is handling. The new method is responsible to verify is the settings correspond to network entry. Right now, it is only verifying "lxc.network.", but in the future, it can be used to verify "lxc.net.X." too. Any other case would be rejected. On the other hand, the idea here is working only with types. If we know that entry is part of network settings, after we just need to know which type is. It keeps the handler simple. Signed-off-by: Julio Faracco Reviewed-by: John Ferlan --- src/lxc/lxc_native.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c index b1d2b19b15..22b083cc0e 100644 --- a/src/lxc/lxc_native.c +++ b/src/lxc/lxc_native.c @@ -593,9 +593,10 @@ lxcNetworkParseDataIPs(const char *name, static int -lxcNetworkWalkCallback(const char *name, virConfValuePtr value, void *data) +lxcNetworkParseDataEntry(const char *name, + virConfValuePtr value, + lxcNetworkParseData *parseData) { - lxcNetworkParseData *parseData = data; int status; if (STREQ(name, "lxc.network.type")) { @@ -652,6 +653,18 @@ lxcNetworkWalkCallback(const char *name, virConfValuePtr value, void *data) return 0; } + +static int +lxcNetworkWalkCallback(const char *name, virConfValuePtr value, void *data) +{ + lxcNetworkParseData *parseData = data; + + if (STRPREFIX(name, "lxc.network.")) + return lxcNetworkParseDataEntry(name, value, parseData); + + return 0; +} + static int lxcConvertNetworkSettings(virDomainDefPtr def, virConfPtr properties) { -- 2.39.5