The only use of this code was removed by:
commit be78814ae07f092d9c4e71fd82dd1947aba2f029
Author: Michal Privoznik <mprivozn(a)redhat.com>
Date: Thu Apr 2 14:41:17 2015 +0200
virNetSocketNewConnectUNIX: Use flocks when spawning a daemon
less than a year after it was first introduced in
commit 1b807f92dbb617db5b9d551777d3026d8ff0903f
Author: Martin Kletzander <mkletzan(a)redhat.com>
Date: Wed Jul 16 08:00:19 2014 +0200
rpc: pass listen FD to the daemon being started
---
src/libvirt_private.syms | 1 -
src/util/vircommand.c | 99 ------------------------------------
src/util/vircommand.h | 2 -
tests/commanddata/test24.log | 8 ---
tests/commandtest.c | 58 ---------------------
5 files changed, 168 deletions(-)
delete mode 100644 tests/commanddata/test24.log
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index a19ba1d798..1e32dd090e 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1700,7 +1700,6 @@ virCommandNewVAList;
virCommandNonblockingFDs;
virCommandPassFD;
virCommandPassFDGetFDIndex;
-virCommandPassListenFDs;
virCommandRawStatus;
virCommandRequireHandshake;
virCommandRun;
diff --git a/src/util/vircommand.c b/src/util/vircommand.c
index 8695c98d1b..c81ddfc0d0 100644
--- a/src/util/vircommand.c
+++ b/src/util/vircommand.c
@@ -66,7 +66,6 @@ enum {
VIR_EXEC_CLEAR_CAPS = (1 << 2),
VIR_EXEC_RUN_SYNC = (1 << 3),
VIR_EXEC_ASYNC_IO = (1 << 4),
- VIR_EXEC_LISTEN_FDS = (1 << 5),
};
typedef struct _virCommandFD virCommandFD;
@@ -205,78 +204,6 @@ virCommandFDSet(virCommandPtr cmd,
#ifndef WIN32
-static void
-virCommandReorderFDs(virCommandPtr cmd)
-{
- int maxfd = 0;
- int openmax = 0;
- size_t i = 0;
-
- if (!cmd || cmd->has_error || !cmd->npassfd)
- return;
-
- for (i = 0; i < cmd->npassfd; i++)
- maxfd = MAX(cmd->passfd[i].fd, maxfd);
-
- openmax = sysconf(_SC_OPEN_MAX);
- if (openmax < 0 ||
- maxfd + cmd->npassfd > openmax)
- goto error;
-
- /*
- * Simple two-pass sort, nothing fancy. This is not designed for
- * anything else than passing around 2 FDs into the child.
- *
- * So first dup2() them somewhere else.
- */
- for (i = 0; i < cmd->npassfd; i++) {
- int newfd = maxfd + i + 1;
- int oldfd = cmd->passfd[i].fd;
- if (dup2(oldfd, newfd) != newfd) {
- virReportSystemError(errno,
- _("Cannot dup2() fd %d before "
- "passing it to the child"),
- oldfd);
- goto error;
- }
- VIR_FORCE_CLOSE(cmd->passfd[i].fd);
- }
-
- VIR_DEBUG("First reorder pass done");
-
- /*
- * And then dup2() them in orderly manner.
- */
- for (i = 0; i < cmd->npassfd; i++) {
- int newfd = STDERR_FILENO + i + 1;
- int oldfd = maxfd + i + 1;
- if (dup2(oldfd, newfd) != newfd) {
- virReportSystemError(errno,
- _("Cannot dup2() fd %d before "
- "passing it to the child"),
- oldfd);
- goto error;
- }
- if (virSetInherit(newfd, true) < 0) {
- virReportSystemError(errno,
- _("Cannot set O_CLOEXEC on fd %d before "
- "passing it to the child"),
- newfd);
- goto error;
- }
- VIR_FORCE_CLOSE(oldfd);
- cmd->passfd[i].fd = newfd;
- }
-
- VIR_DEBUG("Second reorder pass done");
-
- return;
-
- error:
- cmd->has_error = -1;
- return;
-}
-
/**
* virFork:
*
@@ -763,15 +690,6 @@ virExec(virCommandPtr cmd)
goto fork_error;
}
- if (cmd->flags & VIR_EXEC_LISTEN_FDS) {
- virCommandReorderFDs(cmd);
- virCommandAddEnvFormat(cmd, "LISTEN_PID=%u", getpid());
- virCommandAddEnvFormat(cmd, "LISTEN_FDS=%zu", cmd->npassfd);
-
- if (cmd->has_error)
- goto fork_error;
- }
-
/* Close logging again to ensure no FDs leak to child */
virLogReset();
@@ -1002,23 +920,6 @@ virCommandPassFD(virCommandPtr cmd, int fd, unsigned int flags)
}
}
-/**
- * virCommandPassListenFDs:
- * @cmd: the command to modify
- *
- * Pass LISTEN_FDS and LISTEN_PID environment variables into the
- * child. LISTEN_PID has the value of the child's PID and LISTEN_FDS
- * is a number of passed file descriptors starting from 3.
- */
-void
-virCommandPassListenFDs(virCommandPtr cmd)
-{
- if (!cmd || cmd->has_error)
- return;
-
- cmd->flags |= VIR_EXEC_LISTEN_FDS;
-}
-
/*
* virCommandPassFDGetFDIndex:
* @cmd: pointer to virCommand
diff --git a/src/util/vircommand.h b/src/util/vircommand.h
index c9a8d3c41c..2a9ee5cdc7 100644
--- a/src/util/vircommand.h
+++ b/src/util/vircommand.h
@@ -60,8 +60,6 @@ void virCommandPassFD(virCommandPtr cmd,
int fd,
unsigned int flags) ATTRIBUTE_NOINLINE;
-void virCommandPassListenFDs(virCommandPtr cmd);
-
int virCommandPassFDGetFDIndex(virCommandPtr cmd,
int fd);
diff --git a/tests/commanddata/test24.log b/tests/commanddata/test24.log
deleted file mode 100644
index 38cbb5451b..0000000000
--- a/tests/commanddata/test24.log
+++ /dev/null
@@ -1,8 +0,0 @@
-FD:0
-FD:1
-FD:2
-FD:3
-FD:4
-DAEMON:yes
-CWD:/
-UMASK:0022
diff --git a/tests/commandtest.c b/tests/commandtest.c
index 146cc4c1bf..ce0832fb0c 100644
--- a/tests/commandtest.c
+++ b/tests/commandtest.c
@@ -1003,63 +1003,6 @@ test23(const void *unused ATTRIBUTE_UNUSED)
return ret;
}
-static int test24(const void *unused ATTRIBUTE_UNUSED)
-{
- char *pidfile = virPidFileBuildPath(abs_builddir, "commandhelper");
- char *prefix = NULL;
- int newfd1 = dup(STDERR_FILENO);
- int newfd2 = dup(STDERR_FILENO);
- int newfd3 = dup(STDERR_FILENO);
- int ret = -1;
- pid_t pid;
- virCommandPtr cmd = virCommandNew(abs_builddir "/commandhelper");
-
- if (!pidfile)
- goto cleanup;
-
- if (VIR_CLOSE(newfd1) < 0)
- printf("Cannot close fd %d\n", newfd1);
-
- virCommandSetPidFile(cmd, pidfile);
- virCommandDaemonize(cmd);
- virCommandPassFD(cmd, newfd2, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
- virCommandPassFD(cmd, newfd3, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
- newfd2 = newfd3 = -1;
- virCommandPassListenFDs(cmd);
-
- if (virCommandRun(cmd, NULL) < 0) {
- printf("Cannot run child %s\n", virGetLastErrorMessage());
- goto cleanup;
- }
-
- if (virPidFileRead(abs_builddir, "commandhelper", &pid) < 0) {
- printf("cannot read pidfile\n");
- goto cleanup;
- }
-
- if (virAsprintf(&prefix,
- "ENV:LISTEN_FDS=2\nENV:LISTEN_PID=%u\n",
- pid) < 0)
- goto cleanup;
-
- while (kill(pid, 0) != -1)
- usleep(100*1000);
-
- ret = checkoutput("test24", prefix);
-
- cleanup:
- if (pidfile)
- unlink(pidfile);
- VIR_FREE(pidfile);
- VIR_FREE(prefix);
- virCommandFree(cmd);
- VIR_FORCE_CLOSE(newfd1);
- VIR_FORCE_CLOSE(newfd2);
- VIR_FORCE_CLOSE(newfd3);
- return ret;
-}
-
-
static int test25(const void *unused ATTRIBUTE_UNUSED)
{
int ret = -1;
@@ -1347,7 +1290,6 @@ mymain(void)
DO_TEST(test21);
DO_TEST(test22);
DO_TEST(test23);
- DO_TEST(test24);
DO_TEST(test25);
DO_TEST(test26);
--
2.21.0