chiark / gitweb /
REORG Delete everything that's not innduct or build system or changed for innduct
[innduct.git] / lib / setproctitle.c
diff --git a/lib/setproctitle.c b/lib/setproctitle.c
deleted file mode 100644 (file)
index cb72960..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*  $Id: setproctitle.c 5943 2002-12-08 02:28:06Z rra $
-**
-**  Replacement for a missing setproctitle.
-**
-**  Provides the same functionality as the BSD function setproctitle on hosts
-**  where modifying argv will produce those results, or on HP-UX (which has
-**  its own peculiar way of doing this).  This may be ineffective on some
-**  platforms.
-**
-**  Before calling setproctitle, it is *required* that setproctitle_init be
-**  called, passing it argc and argv as arguments.  setproctitle_init will be
-**  stubbed out on those platforms that don't need it.
-*/
-
-#include "config.h"
-#include "clibrary.h"
-#include "portable/setproctitle.h"
-
-#include "inn/messages.h"
-
-#if HAVE_PSTAT
-
-#include <sys/param.h>
-#include <sys/pstat.h>
-
-void
-setproctitle(const char *format, ...)
-{
-    va_list args;
-    char title[BUFSIZ];
-    union pstun un;
-    ssize_t delta = 0;
-
-    if (message_program_name != NULL) {
-        delta = snprintf(title, sizeof(title), "%s: ", message_program_name);
-        if (delta < 0)
-            delta = 0;
-    }
-    va_start(args, format);
-    vsnprintf(title + delta, sizeof(title) - delta, format, args);
-    va_end(args);
-    un.pst_command = title;
-    pstat(PSTAT_SETCMD, un, strlen(title), 0, 0);
-}
-
-#else
-
-static char *title_start = NULL;
-static char *title_end = NULL;
-
-void
-setproctitle_init(int argc, char *argv[])
-{
-    title_start = argv[0];
-    title_end = argv[argc - 1] + strlen(argv[argc - 1]) - 1;
-}
-
-void
-setproctitle(const char *format, ...)
-{
-    va_list args;
-    size_t length;
-    ssize_t delta;
-    char *title;
-
-    if (title_start == NULL || title_end == NULL) {
-        warn("setproctitle called without setproctitle_init");
-        return;
-    }
-
-    /* setproctitle prepends the program name to its arguments.  Our emulation
-       should therefore do the same thing.  However, some operating systems
-       seem to do that automatically even when we completely overwrite argv,
-       so start our title with a - so that they'll instead put (nnrpd) at the
-       end, thinking we're swapped out. */
-    title = title_start;
-    *title++ = '-';
-    *title++ = ' ';
-    length = title_end - title_start - 2;
-
-    /* Now, put in the actual content.  Get the program name from
-       message_program_name if it's set. */
-    if (message_program_name != NULL) {
-        delta = snprintf(title, length, "%s: ", message_program_name);
-        if (delta < 0 || (size_t) delta > length)
-            return;
-        if (delta > 0) {
-            title += delta;
-            length -= delta;
-        }
-    }
-    va_start(args, format);
-    delta = vsnprintf(title, length, format, args);
-    va_end(args);
-    if (delta < 0 || (size_t) delta > length)
-        return;
-    if (delta > 0) {
-        title += delta;
-        length -= delta;
-    }
-    for (; length > 1; length--, title++)
-        *title = ' ';
-    *title = '\0';
-}
-
-#endif /* !HAVE_PSTAT */