]> xenbits.xensource.com Git - libvirt.git/commitdiff
nss: remove last usages of libvirt headers
authorDaniel P. Berrangé <berrange@redhat.com>
Wed, 31 Jul 2019 13:35:34 +0000 (14:35 +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>
tools/nss/libvirt_nss.c
tools/nss/libvirt_nss.h
tools/nss/libvirt_nss_leases.c

index 2719e19cda4ac9abcf6ecd4a9870ef2a5cc405c0..a9814cf0dc7ea5ce0a3a647bede169ef03fe34c0 100644 (file)
 #include <sys/types.h>
 #include <dirent.h>
 #include <arpa/inet.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
 
 #if defined(HAVE_BSD_NSS)
 # include <nsswitch.h>
 #endif
 
-#include "viralloc.h"
-#include "virtime.h"
 #include "configmake.h"
 
 #include "libvirt_nss_leases.h"
@@ -146,10 +148,10 @@ findLease(const char *name,
 
             DEBUG("Processing %s", path);
             if (findMACs(path, name, &macs, &nmacs) < 0) {
-                VIR_FREE(path);
+                free(path);
                 goto cleanup;
             }
-            VIR_FREE(path);
+            free(path);
 #endif /* LIBVIRT_NSS_GUEST */
         }
 
@@ -243,7 +245,7 @@ NSS_NAME(gethostbyname3)(const char *name, int af, struct hostent *result,
 {
     enum nss_status ret = NSS_STATUS_UNAVAIL;
     char *r_name, **r_aliases, *r_addr, *r_addr_next, **r_addr_list;
-    VIR_AUTOFREE(leaseAddress *) addr = NULL;
+    leaseAddress *addr = NULL;
     size_t naddr, i;
     bool found = false;
     size_t nameLen, need, idx = 0;
@@ -259,6 +261,7 @@ NSS_NAME(gethostbyname3)(const char *name, int af, struct hostent *result,
         af = AF_INET;
 
     if ((r = findLease(name, af, &addr, &naddr, &found, errnop)) < 0) {
+        free(addr);
         /* Error occurred. Return immediately. */
         if (*errnop == EAGAIN) {
             *herrnop = TRY_AGAIN;
@@ -273,11 +276,13 @@ NSS_NAME(gethostbyname3)(const char *name, int af, struct hostent *result,
         /* NOT found */
         *errnop = ESRCH;
         *herrnop = HOST_NOT_FOUND;
+        free(addr);
         return NSS_STATUS_NOTFOUND;
     } else if (!naddr) {
         /* Found, but no data */
         *errnop = ENXIO;
         *herrnop = NO_DATA;
+        free(addr);
         return NSS_STATUS_UNAVAIL;
     }
 
@@ -349,6 +354,7 @@ NSS_NAME(gethostbyname3)(const char *name, int af, struct hostent *result,
 
     ret = NSS_STATUS_SUCCESS;
  cleanup:
+    free(addr);
     return ret;
 }
 
index 6e4be125d22dd8073e065737728eb5cbf7a69431..fa4ff892c6a8a595ac50def25022ca3e6dda58bc 100644 (file)
 
 
 #if 0
-# include "virerror.h"
+# include <errno.h>
 # define ERROR(...) \
 do { \
     char ebuf[1024]; \
+    strerror_r(errno, ebuf, sizeof(ebuf)); \
     fprintf(stderr, "ERROR %s:%d : ", __FUNCTION__, __LINE__); \
     fprintf(stderr, __VA_ARGS__); \
-    fprintf(stderr, " : %s\n", virStrerror(errno, ebuf, sizeof(ebuf))); \
+    fprintf(stderr, " : %s\n", ebuf); \
     fprintf(stderr, "\n"); \
 } while (0)
 
index 2673dd7d52ba8f78f75288d21f1140a2e775d90a..48a54d58418063f57742dc64563aa6494c215dcb 100644 (file)
@@ -30,7 +30,6 @@
 
 #include "libvirt_nss_leases.h"
 #include "libvirt_nss.h"
-#include "viralloc.h"
 
 enum {
     FIND_LEASES_STATE_START,
@@ -79,6 +78,7 @@ appendAddr(const char *name ATTRIBUTE_UNUSED,
     } sa;
     unsigned char addr[16];
     int err;
+    leaseAddress *newAddr;
 
     DEBUG("IP address: %s", ipAddr);
 
@@ -131,10 +131,12 @@ appendAddr(const char *name ATTRIBUTE_UNUSED,
         }
     }
 
-    if (VIR_REALLOC_N_QUIET(*tmpAddress, *ntmpAddress + 1) < 0) {
+    newAddr = realloc(*tmpAddress, sizeof(*newAddr) * (*ntmpAddress + 1));
+    if (!newAddr) {
         ERROR("Out of memory");
         return -1;
     }
+    *tmpAddress = newAddr;
 
     (*tmpAddress)[*ntmpAddress].expirytime = expirytime;
     (*tmpAddress)[*ntmpAddress].af = family;