chiark / gitweb /
sd-event: implicitly set signal event source's descriptions to the signal name
[elogind.git] / src / core / socket.c
index dc16af5e3910aecd17c69d70f24d19e38ceafa21..6ba8338d8b26ef00d905b779c45bf77e960e5483 100644 (file)
@@ -1120,7 +1120,7 @@ static int socket_symlink(Socket *s) {
                 return 0;
 
         STRV_FOREACH(i, s->symlinks)
-                symlink(p, *i);
+                symlink_label(p, *i);
 
         return 0;
 }
@@ -1150,7 +1150,7 @@ static int socket_open_fds(Socket *s) {
                                         /* Get it from the network label */
 
                                         r = mac_selinux_get_our_label(&label);
-                                        if (r < 0 && r != EOPNOTSUPP)
+                                        if (r < 0 && r != -EOPNOTSUPP)
                                                 goto rollback;
 
                                 } else {
@@ -1163,7 +1163,7 @@ static int socket_open_fds(Socket *s) {
                                         if (UNIT_ISSET(s->service) &&
                                             SERVICE(UNIT_DEREF(s->service))->exec_command[SERVICE_EXEC_START]) {
                                                 r = mac_selinux_get_create_label_from_exe(SERVICE(UNIT_DEREF(s->service))->exec_command[SERVICE_EXEC_START]->path, &label);
-                                                if (r < 0 && r != -EPERM && r != EOPNOTSUPP)
+                                                if (r < 0 && r != -EPERM && r != -EOPNOTSUPP)
                                                         goto rollback;
                                         }
                                 }
@@ -1578,7 +1578,8 @@ static void socket_enter_signal(Socket *s, SocketState state, SocketResult f) {
         r = unit_kill_context(
                         UNIT(s),
                         &s->kill_context,
-                        state != SOCKET_STOP_PRE_SIGTERM && state != SOCKET_FINAL_SIGTERM,
+                        (state != SOCKET_STOP_PRE_SIGTERM && state != SOCKET_FINAL_SIGTERM) ?
+                        KILL_KILL : KILL_TERMINATE,
                         -1,
                         s->control_pid,
                         false);