* NSM for Linux.
*/
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <errno.h>
#include <limits.h>
return ((void *)NULL);
if (!(ptr = malloc (size)))
- /* SHIT! SHIT! SHIT! */
- die ("malloc failed");
+ xlog_err ("malloc failed");
return (ptr);
}
/* Will only fail if underlying malloc() fails (ENOMEM). */
if (!(result = strdup (string)))
- die ("strdup failed");
+ xlog_err ("strdup failed");
return (result);
}
/*
- * Call with check=1 to verify that this host is not still on the rtnl
- * before unlinking file.
+ * Unlinking a file.
*/
void
-xunlink (char *path, char *host, short int check)
+xunlink (char *path, char *host)
{
- char *tozap;
+ char *tozap;
- tozap=alloca (strlen(path)+strlen(host)+2);
- sprintf (tozap, "%s/%s", path, host);
+ tozap = malloc(strlen(path)+strlen(host)+2);
+ if (tozap == NULL) {
+ xlog(L_ERROR, "xunlink: malloc failed: errno %d (%m)", errno);
+ return;
+ }
+ sprintf (tozap, "%s/%s", path, host);
- if (!check || !nlist_gethost(rtnl, host, 0))
- if (unlink (tozap) == -1)
- log (L_ERROR, "unlink (%s): %s", tozap, strerror (errno));
- else
- dprintf (L_DEBUG, "Unlinked %s", tozap);
- else
- dprintf (L_DEBUG, "Not unlinking %s--host still monitored.", tozap);
+ if (unlink (tozap) == -1)
+ xlog(L_ERROR, "unlink (%s): %m", tozap);
+ else
+ xlog(D_GENERAL, "Unlinked %s", tozap);
+
+ free(tozap);
}