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 <jcfaracco@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
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")) {
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)
{