summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-04-08 17:00:05 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-04-08 17:00:05 -0400
commit41bfc4bb5e1042ec9eca48ed645393b12978d703 (patch)
tree094cf68df41f7f5c98a1c844e51bc32fb0e7155d /util.c
parent608f4f254ccf95a01b5480e2dbe7a1b6e54c8609 (diff)
Actual install process
Diffstat (limited to 'util.c')
-rw-r--r--util.c72
1 files changed, 0 insertions, 72 deletions
diff --git a/util.c b/util.c
deleted file mode 100644
index 772dbf8..0000000
--- a/util.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2016 Luke Shumaker */
-
-#include <ctype.h> /* for isdigit */
-#include <stdlib.h>
-#include <error.h>
-#include <errno.h>
-
-#include "util.h"
-
-void *xrealloc(void *ptr, size_t size)
-{
- void *ret = realloc(ptr, size);
- if (ret == NULL) {
- if (ptr==NULL)
- error(1, errno, "Could not allocate memory");
- else
- error(1, errno, "Could not re-allocate memory");
- }
- return ret;
-}
-
-bool is_numeric(const char *str) {
- for (size_t i = 0; str[i] != '\0'; i++)
- if (!isdigit(str[i]))
- return false;
- if (str[0] == '\0')
- return false;
- return true;
-}
-
-int get_fd(const char *addr) {
- int sock;
- if (strcmp(addr, "stdin") == 0) {
- sock = 0;
- } else if (strcmp(addr, "stdout") == 0) {
- sock = 1;
- } else if (strcmp(addr, "stderr") == 0) {
- sock = 2;
- } else if (strncmp(addr, "systemd", strlen("systemd")) == 0) {
- sock = 3; /* <systemd/sd-daemon.h>:SD_LISTEN_FDS_START */
- addr = &addr[strlen("systemd")];
- switch (addr[0]) {
- case '\0':
- /* do nothing */
- break;
- case ':':
- addr = &addr[1];
- if (is_numeric(addr)) {
- sock += atoi(addr);
- } else {
- const char *e = getenv("LISTEN_FDNAMES");
- if (e == NULL)
- return -ENOTCONN;
- char *names = strdupa(e);
- char *name = NULL;
- int i = -1;
- do {
- name = strsep(&names, ":");
- i++;
- } while (name != NULL && strcmp(name, addr) != 0);
- if (name == NULL)
- return -ENOENT;
- sock += i;
- }
- }
- } else {
- if (!is_numeric(addr))
- return -EINVAL;
- sock = atoi(addr);
- }
- return sock;
-}