domiftune: Add a util function virDomainNetFind

Add a util function virDomainNetFind to find a domain's net def.
This commit is contained in:
Hu Tao 2011-12-29 18:27:35 +08:00 committed by Osier Yang
parent e7dfe00d06
commit ee3de186b3
3 changed files with 43 additions and 0 deletions

View File

@ -13726,3 +13726,42 @@ virDomainGraphicsListenSetNetwork(virDomainGraphicsDefPtr def,
return 0;
}
/**
* virDomainNetFind:
* @def: domain's def
* @device: could be the interface name or MAC address
*
* Finds a domain's net def, given the interface name or MAC address
*
* Returns a pointer to the net def or NULL if not found.
*/
virDomainNetDefPtr
virDomainNetFind(virDomainDefPtr def, const char *device)
{
bool isMac = false;
virDomainNetDefPtr net = NULL;
unsigned char mac[VIR_MAC_BUFLEN];
int i;
if (virParseMacAddr(device, mac) == 0)
isMac = true;
if (isMac) {
for (i = 0; i < def->nnets; i++) {
if (memcmp(mac, def->nets[i]->mac, VIR_MAC_BUFLEN) == 0) {
net = def->nets[i];
break;
}
}
} else { /* ifname */
for (i = 0; i < def->nnets; i++) {
if (STREQ_NULLABLE(device, def->nets[i]->ifname)) {
net = def->nets[i];
break;
}
}
}
return net;
}

View File

@ -2033,4 +2033,7 @@ VIR_ENUM_DECL(virDomainTimerTickpolicy)
VIR_ENUM_DECL(virDomainTimerMode)
VIR_ENUM_DECL(virDomainStartupPolicy)
virDomainNetDefPtr virDomainNetFind(virDomainDefPtr def,
const char *device);
#endif /* __DOMAIN_CONF_H */

View File

@ -308,6 +308,7 @@ virDomainDiskSnapshotTypeFromString;
virDomainDiskSnapshotTypeToString;
virDomainDiskTypeFromString;
virDomainDiskTypeToString;
virDomainNetFind;
virDomainFSDefFree;
virDomainFSTypeFromString;
virDomainFSTypeToString;