chiark / gitweb /
core: add new AcceptFD= setting to .busname units
[elogind.git] / src / core / busname.c
index 9d7a7965380a22d06d6622e58e30c1abced55c9b..ccef32e9e7daea96536399d01be4da73939cd104 100644 (file)
@@ -43,6 +43,7 @@ static void busname_init(Unit *u) {
         assert(u->load_state == UNIT_STUB);
 
         n->starter_fd = -1;
+        n->accept_fd = true;
 }
 
 static void busname_done(Unit *u) {
@@ -170,10 +171,12 @@ static void busname_dump(Unit *u, FILE *f, const char *prefix) {
         fprintf(f,
                 "%sBus Name State: %s\n"
                 "%sResult: %s\n"
-                "%sName: %s\n",
+                "%sName: %s\n"
+                "%sAccept FD: %s\n",
                 prefix, busname_state_to_string(n->state),
                 prefix, busname_result_to_string(n->result),
-                prefix, n->name);
+                prefix, n->name,
+                prefix, yes_no(n->accept_fd));
 }
 
 static void busname_unwatch_fd(BusName *n) {
@@ -226,8 +229,10 @@ static int busname_open_fd(BusName *n) {
         if (n->starter_fd >= 0)
                 return 0;
 
-        n->starter_fd = bus_kernel_create_starter(UNIT(n)->manager->running_as == SYSTEMD_SYSTEM ? "system" : "user",
-                                                  n->name, n->policy);
+        n->starter_fd = bus_kernel_create_starter(
+                        UNIT(n)->manager->running_as == SYSTEMD_SYSTEM ? "system" : "user",
+                        n->name, n->accept_fd, n->policy);
+
         if (n->starter_fd < 0) {
                 log_warning_unit(UNIT(n)->id, "Failed to create starter fd: %s", strerror(-n->starter_fd));
                 return n->starter_fd;