[libvirt] [PATCH 10/17] nss: remove use for virString helper APIs

Daniel P. Berrangé berrange at redhat.com
Thu Aug 1 15:00:12 UTC 2019


Use the plain libc APIs to avoid a dependancy on the main libvirt
code from the nss module.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 tools/nss/libvirt_nss.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/tools/nss/libvirt_nss.c b/tools/nss/libvirt_nss.c
index f50dec48ba..d057827ebc 100644
--- a/tools/nss/libvirt_nss.c
+++ b/tools/nss/libvirt_nss.c
@@ -41,7 +41,6 @@
 #include "virfile.h"
 #include "virtime.h"
 #include "virerror.h"
-#include "virstring.h"
 #include "virsocketaddr.h"
 #include "configmake.h"
 #include "virmacmap.h"
@@ -193,13 +192,20 @@ findLeaseInJSON(leaseAddress **tmpAddress,
         }
 
         if (macs) {
+            const char **macstmp = macs;
             const char *macAddr;
+            bool match = false;
 
             macAddr = virJSONValueObjectGetString(lease, "mac-address");
             if (!macAddr)
                 continue;
 
-            if (!virStringListHasString(macs, macAddr))
+            while (*macstmp && !match) {
+                if (STREQ(*macstmp, macAddr))
+                    match = true;
+                macstmp++;
+            }
+            if (!match)
                 continue;
         } else {
             const char *lease_name;
@@ -295,8 +301,9 @@ findLease(const char *name,
     DEBUG("Dir: %s", leaseDir);
     while ((entry = readdir(dir)) != NULL) {
         char *path;
+        size_t dlen = strlen(entry->d_name);
 
-        if (virStringHasSuffix(entry->d_name, ".status")) {
+        if (dlen >= 7 && STREQ(entry->d_name + dlen - 7, ".status")) {
             if (!(path = virFileBuildPath(leaseDir, entry->d_name, NULL)))
                 goto cleanup;
 
@@ -307,7 +314,7 @@ findLease(const char *name,
                 goto cleanup;
             }
             VIR_FREE(path);
-        } else if (virStringHasSuffix(entry->d_name, ".macs")) {
+        } else if (dlen >= 5 && STREQ(entry->d_name + dlen - 5, ".macs")) {
             if (!(path = virFileBuildPath(leaseDir, entry->d_name, NULL)))
                 goto cleanup;
 
-- 
2.21.0




More information about the libvir-list mailing list