core/socket: remove duplicate unit_add_two_dependencies
authorMike Yuan <me@yhndnzj.com>
Sat, 23 Mar 2024 09:27:46 +0000 (17:27 +0800)
committerMike Yuan <me@yhndnzj.com>
Sat, 23 Mar 2024 17:08:40 +0000 (01:08 +0800)
src/core/service.c
src/core/socket.c

index 38fb07d5948d6b7705d41763632bb446c4d28c88..cc6b6e6961cba4ecaaafab3a2928eec09ed0bc0b 100644 (file)
@@ -4722,6 +4722,7 @@ int service_set_socket_fd(
 
         assert(s);
         assert(fd >= 0);
+        assert(sock);
 
         /* This is called by the socket code when instantiating a new service for a stream socket and the socket needs
          * to be configured. We take ownership of the passed fd on success. */
@@ -4753,9 +4754,10 @@ int service_set_socket_fd(
                         return r;
         }
 
-        r = unit_add_two_dependencies(UNIT(sock), UNIT_BEFORE, UNIT_TRIGGERS, UNIT(s), false, UNIT_DEPENDENCY_IMPLICIT);
+        r = unit_add_two_dependencies(UNIT(s), UNIT_AFTER, UNIT_TRIGGERED_BY, UNIT(sock), false, UNIT_DEPENDENCY_IMPLICIT);
         if (r < 0)
-                return r;
+                return log_unit_debug_errno(UNIT(s), r,
+                                            "Failed to add After=/TriggeredBy= dependencies on socket unit: %m");
 
         s->socket_fd = fd;
         s->socket_peer = socket_peer_ref(peer);
index 48959f729d96ea54432154064278fb966e1f71b2..8b3aa88715105b88b13f388901700fef424c0cb1 100644 (file)
@@ -2353,13 +2353,6 @@ static void socket_enter_running(Socket *s, int cfd_in) {
                         goto fail;
                 }
 
-                r = unit_add_two_dependencies(UNIT(s), UNIT_BEFORE, UNIT_TRIGGERS, service,
-                                              false, UNIT_DEPENDENCY_IMPLICIT);
-                if (r < 0) {
-                        log_unit_warning_errno(UNIT(s), r, "Failed to add Before=/Triggers= dependencies on connection unit: %m");
-                        goto fail;
-                }
-
                 s->n_accepted++;
 
                 r = service_set_socket_fd(SERVICE(service), cfd, s, p, s->selinux_context_from_net);