summaryrefslogtreecommitdiff
path: root/src/userdb
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-05-06 16:41:05 +0200
committerLennart Poettering <lennart@poettering.net>2021-05-07 16:43:43 +0200
commitbbfb8c878c4909fa3de6c735ab84dd6e6158e61f (patch)
tree431d60d7f4a53588c3bef4ce7f0da615f5fe4fb5 /src/userdb
parent2708160ccda8727de80442cbf634489a360ca001 (diff)
downloadsystemd-bbfb8c878c4909fa3de6c735ab84dd6e6158e61f.tar.gz
userdbd: reverse which path is a socket and which a symlink
userdbd listens on "two" sockets, that are actually the same: one is a real AF_UNIX socket in the fs, and the other is a symlink to it. So far, when userdbd was started from the command line it would make one a symlink and the other a real socket, but when invoked via unit files they'd be swapped, i.e. the other would be a symlink and the one a real socket. Let's bring this in line. Since the "io.systemd.Multiplexer" is our main interface, let's make it the one exposed as socket, and then make "io.systemd.NameServiceSwitch" a symlink to it. Or in other words, let's adjust the C code to match the unit file.
Diffstat (limited to 'src/userdb')
-rw-r--r--src/userdb/userdbd-manager.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/userdb/userdbd-manager.c b/src/userdb/userdbd-manager.c
index f8d315ce2d..3fd82255ac 100644
--- a/src/userdb/userdbd-manager.c
+++ b/src/userdb/userdbd-manager.c
@@ -267,7 +267,7 @@ int manager_startup(Manager *m) {
else {
union sockaddr_union sockaddr = {
.un.sun_family = AF_UNIX,
- .un.sun_path = "/run/systemd/userdb/io.systemd.NameServiceSwitch",
+ .un.sun_path = "/run/systemd/userdb/io.systemd.Multiplexer",
};
r = mkdir_p("/run/systemd/userdb", 0755);
@@ -284,7 +284,8 @@ int manager_startup(Manager *m) {
if (bind(m->listen_fd, &sockaddr.sa, SOCKADDR_UN_LEN(sockaddr.un)) < 0)
return log_error_errno(errno, "Failed to bind socket: %m");
- r = symlink_idempotent("io.systemd.NameServiceSwitch", "/run/systemd/userdb/io.systemd.Multiplexer", false);
+ r = symlink_idempotent("io.systemd.Multiplexer",
+ "/run/systemd/userdb/io.systemd.NameServiceSwitch", false);
if (r < 0)
return log_error_errno(r, "Failed to bind io.systemd.Multiplexer: %m");