Fix net->data usage accordingly to type field.
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy(a)virtuozzo.com>
---
src/vz/vz_sdk.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
index 7730bca..328a5bc 100644
--- a/src/vz/vz_sdk.c
+++ b/src/vz/vz_sdk.c
@@ -866,9 +866,6 @@ prlsdkGetNetInfo(PRL_HANDLE netAdapter, virDomainNetDefPtr net, bool
isCt)
PRL_BOOL isConnected;
int ret = -1;
- net->type = VIR_DOMAIN_NET_TYPE_NETWORK;
-
-
/* use device name, shown by prlctl as target device
* for identifying network adapter in virDomainDefineXML */
if (!(net->ifname = prlsdkGetStringParamVar(PrlVmDevNet_GetHostInterfaceName,
@@ -909,7 +906,9 @@ prlsdkGetNetInfo(PRL_HANDLE netAdapter, virDomainNetDefPtr net, bool
isCt)
PARALLELS_DOMAIN_ROUTED_NETWORK_NAME) < 0)
goto cleanup;
} else {
- if (!(net->data.network.name =
+ char *netid = NULL;
+
+ if (!(netid =
prlsdkGetStringParamVar(PrlVmDevNet_GetVirtualNetworkId,
netAdapter)))
goto cleanup;
@@ -920,8 +919,13 @@ prlsdkGetNetInfo(PRL_HANDLE netAdapter, virDomainNetDefPtr net, bool
isCt)
* predefined ones such as PARALLELS_DOMAIN_BRIDGED_NETWORK_NAME
* and PARALLELS_DONAIN_ROUTED_NETWORK_NAME
*/
- if (STRNEQ(net->data.network.name, PARALLELS_DOMAIN_BRIDGED_NETWORK_NAME))
+ if (STRNEQ(netid, PARALLELS_DOMAIN_BRIDGED_NETWORK_NAME)) {
net->type = VIR_DOMAIN_NET_TYPE_BRIDGE;
+ net->data.network.name = netid;
+ } else {
+ net->type = VIR_DOMAIN_NET_TYPE_NETWORK;
+ net->data.bridge.brname = netid;
+ }
}
@@ -3161,7 +3165,7 @@ static int prlsdkConfigureNet(vzDriverPtr driver,
pret = PrlVirtNet_Create(&vnet);
prlsdkCheckRetGoto(pret, cleanup);
- pret = PrlVirtNet_SetNetworkId(vnet, net->data.network.name);
+ pret = PrlVirtNet_SetNetworkId(vnet, net->data.bridge.brname);
prlsdkCheckRetGoto(pret, cleanup);
pret = PrlVirtNet_SetNetworkType(vnet, PVN_BRIDGED_ETHERNET);
@@ -3176,7 +3180,7 @@ static int prlsdkConfigureNet(vzDriverPtr driver,
pret = PrlVmDev_SetEmulatedType(sdknet, PNA_BRIDGED_ETHERNET);
prlsdkCheckRetGoto(pret, cleanup);
- pret = PrlVmDevNet_SetVirtualNetworkId(sdknet, net->data.network.name);
+ pret = PrlVmDevNet_SetVirtualNetworkId(sdknet, net->data.bridge.brname);
prlsdkCheckRetGoto(pret, cleanup);
}
--
1.8.3.1