mirror of
https://github.com/NixOS/nix
synced 2025-06-25 10:41:16 +02:00
Add convenience function for connecting to a Unix domain socket
This commit is contained in:
parent
5b4806ab3c
commit
0087188d47
3 changed files with 15 additions and 3 deletions
|
@ -83,9 +83,7 @@ ref<RemoteStore::Connection> UDSRemoteStore::openConnection()
|
||||||
auto conn = make_ref<Connection>();
|
auto conn = make_ref<Connection>();
|
||||||
|
|
||||||
/* Connect to a daemon that does the privileged work for us. */
|
/* Connect to a daemon that does the privileged work for us. */
|
||||||
conn->fd = createUnixDomainSocket();
|
conn->fd = nix::connect(config->path);
|
||||||
|
|
||||||
nix::connect(toSocket(conn->fd.get()), config->path);
|
|
||||||
|
|
||||||
conn->from.fd = conn->fd.get();
|
conn->from.fd = conn->fd.get();
|
||||||
conn->to.fd = conn->fd.get();
|
conn->to.fd = conn->fd.get();
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
#endif
|
#endif
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <filesystem>
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -80,4 +82,9 @@ void bind(Socket fd, const std::string & path);
|
||||||
*/
|
*/
|
||||||
void connect(Socket fd, const std::string & path);
|
void connect(Socket fd, const std::string & path);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Connect to a Unix domain socket.
|
||||||
|
*/
|
||||||
|
AutoCloseFD connect(const std::filesystem::path & path);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,4 +114,11 @@ void connect(Socket fd, const std::string & path)
|
||||||
bindConnectProcHelper("connect", ::connect, fd, path);
|
bindConnectProcHelper("connect", ::connect, fd, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AutoCloseFD connect(const std::filesystem::path & path)
|
||||||
|
{
|
||||||
|
auto fd = createUnixDomainSocket();
|
||||||
|
nix::connect(toSocket(fd.get()), path);
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue