]> xenbits.xensource.com Git - libvirt.git/commitdiff
nss: remove use for virDir helper APIs
authorDaniel P. Berrangé <berrange@redhat.com>
Tue, 30 Jul 2019 14:33:20 +0000 (15:33 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Wed, 7 Aug 2019 15:54:02 +0000 (16:54 +0100)
Use the plain libc APIs to avoid a dependancy on the main libvirt
code from the nss module.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
cfg.mk
tools/nss/libvirt_nss.c

diff --git a/cfg.mk b/cfg.mk
index ec09550b49fd498955cd19e258b75e3f035ef874..f2b326ec94f7b007a4f237914a907019dc7f14bd 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -1338,7 +1338,7 @@ exclude_file_name_regexp--sc_prohibit_always-defined_macros = \
   ^tests/virtestmock.c$$
 
 exclude_file_name_regexp--sc_prohibit_readdir = \
-  ^tests/(.*mock|virfilewrapper)\.c$$
+  ^(tests/(.*mock|virfilewrapper)\.c|tools/nss/libvirt_nss\.c)$$
 
 exclude_file_name_regexp--sc_prohibit_cross_inclusion = \
   ^(src/util/virclosecallbacks\.h|src/util/virhostdev\.h)$$
index 519046a4e0a3f1c2694f930f225406ac3a7e7856..f50dec48ba8d4604f61e589d125e338fb29f7320 100644 (file)
@@ -281,7 +281,8 @@ findLease(const char *name,
         goto cleanup;
     }
 
-    if (virDirOpenQuiet(&dir, leaseDir) < 0) {
+    dir = opendir(leaseDir);
+    if (!dir) {
         ERROR("Failed to open dir '%s'", leaseDir);
         goto cleanup;
     }
@@ -292,7 +293,7 @@ findLease(const char *name,
     }
 
     DEBUG("Dir: %s", leaseDir);
-    while ((ret = virDirRead(dir, &entry, leaseDir)) > 0) {
+    while ((entry = readdir(dir)) != NULL) {
         char *path;
 
         if (virStringHasSuffix(entry->d_name, ".status")) {
@@ -324,8 +325,11 @@ findLease(const char *name,
             nMacmaps++;
             VIR_FREE(path);
         }
+
+        errno = 0;
     }
-    VIR_DIR_CLOSE(dir);
+    closedir(dir);
+    dir = NULL;
 
     nleases = virJSONValueArraySize(leases_array);
     DEBUG("Read %zd leases", nleases);
@@ -363,7 +367,8 @@ findLease(const char *name,
 
  cleanup:
     *errnop = errno;
-    VIR_DIR_CLOSE(dir);
+    if (dir)
+        closedir(dir);
     while (nMacmaps)
         virObjectUnref(macmaps[--nMacmaps]);
     return ret;