X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fstatd%2Fmisc.c;h=44af30eea07ef8ccf7d4f9990c5ed18540c66041;hp=fd201b4b09eabc67307c4695ee8e5633f23b4563;hb=9ccfe0fa5a43dfc4453b09e328565a6c8f999fe4;hpb=ac5b03be829b4c9369ebfb07a688308721103228 diff --git a/utils/statd/misc.c b/utils/statd/misc.c index fd201b4..44af30e 100644 --- a/utils/statd/misc.c +++ b/utils/statd/misc.c @@ -29,8 +29,7 @@ xmalloc (size_t size) return ((void *)NULL); if (!(ptr = malloc (size))) - /* SHIT! SHIT! SHIT! */ - die ("malloc failed"); + xlog_err ("malloc failed"); return (ptr); } @@ -46,30 +45,31 @@ xstrdup (const char *string) /* 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) - note (N_ERROR, "unlink (%s): %s", tozap, strerror (errno)); - else - dprintf (N_DEBUG, "Unlinked %s", tozap); - } - else - dprintf (N_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); }