There are places where an interface will not have a mac address, and netcf
returns this as a NULL pointer rather than a pointer to an empty string.
Rather than checking for this all over the place in libvirt, just save it
in the virInterface object as an empty string.
---
src/datatypes.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/datatypes.c b/src/datatypes.c
index 89ad309..ecefc59 100644
--- a/src/datatypes.c
+++ b/src/datatypes.c
@@ -588,10 +588,15 @@ virInterfacePtr
virGetInterface(virConnectPtr conn, const char *name, const char *mac) {
virInterfacePtr ret = NULL;
- if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (mac == NULL)) {
+ if ((!VIR_IS_CONNECT(conn)) || (name == NULL)) {
virLibConnError(NULL, VIR_ERR_INVALID_ARG, __FUNCTION__);
return(NULL);
}
+
+ /* a NULL mac from caller is okay. Treat it as blank */
+ if (mac == NULL)
+ mac = "";
+
virMutexLock(&conn->lock);
ret = (virInterfacePtr) virHashLookup(conn->interfaces, name);
--
1.6.5.15.gc274d