aboutsummaryrefslogtreecommitdiff
path: root/src/libutil/util.hh
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2021-08-24 13:52:55 +0200
committerEelco Dolstra <edolstra@gmail.com>2021-10-05 10:44:59 +0200
commit43d4d75e22ea1f7ee2936fe725c1f7ea7a5005e6 (patch)
tree1d450f1f359210e17f1c0c72a8953ac8f72084a9 /src/libutil/util.hh
parent08cc572f8935f9078ef3747187c65b904d5675c7 (diff)
Connect/bind Unix domain sockets in a child process
In the child process, we can do a chdir() and avoid the problem of the path not fitting into sockaddr_un.
Diffstat (limited to 'src/libutil/util.hh')
-rw-r--r--src/libutil/util.hh8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index bee77b53f..6d3e64949 100644
--- a/src/libutil/util.hh
+++ b/src/libutil/util.hh
@@ -259,7 +259,7 @@ void killUser(uid_t uid);
pid to the caller. */
struct ProcessOptions
{
- string errorPrefix = "error: ";
+ string errorPrefix = "";
bool dieWithParent = true;
bool runExitHandlers = false;
bool allowVfork = true;
@@ -574,6 +574,12 @@ void commonChildInit(Pipe & logPipe);
/* Create a Unix domain socket in listen mode. */
AutoCloseFD createUnixDomainSocket(const Path & path, mode_t mode);
+/* Bind a Unix domain socket to a path. */
+void bind(int fd, const std::string & path);
+
+/* Connect to a Unix domain socket. */
+void connect(int fd, const std::string & path);
+
// A Rust/Python-like enumerate() iterator adapter.
// Borrowed from http://reedbeta.com/blog/python-like-enumerate-in-cpp17.