chiark / gitweb /
util-lib: move formats-util.h from shared/ to basic/
[elogind.git] / src / shared / clean-ipc.c
index 39ab645133f8df33237ab34c875edfbd0dc19555..85d35a567be74ae3431d789837bfcdcc9d009671 100644 (file)
 #include <sys/sem.h>
 #include <sys/msg.h>
 #include <sys/stat.h>
-#include <sys/mman.h>
 #include <fcntl.h>
 #include <dirent.h>
-#include <mqueue.h>
+//#include <mqueue.h>
 
 #include "util.h"
+#include "formats-util.h"
 #include "strv.h"
 #include "clean-ipc.h"
 
@@ -78,8 +78,9 @@ static int clean_sysvipc_shm(uid_t delete_uid) {
                         if (errno == EIDRM || errno == EINVAL)
                                 continue;
 
-                        log_warning_errno(errno, "Failed to remove SysV shared memory segment %i: %m", shmid);
-                        ret = -errno;
+                        ret = log_warning_errno(errno,
+                                                "Failed to remove SysV shared memory segment %i: %m",
+                                                shmid);
                 }
         }
 
@@ -130,8 +131,9 @@ static int clean_sysvipc_sem(uid_t delete_uid) {
                         if (errno == EIDRM || errno == EINVAL)
                                 continue;
 
-                        log_warning_errno(errno, "Failed to remove SysV semaphores object %i: %m", semid);
-                        ret = -errno;
+                        ret = log_warning_errno(errno,
+                                                "Failed to remove SysV semaphores object %i: %m",
+                                                semid);
                 }
         }
 
@@ -183,8 +185,9 @@ static int clean_sysvipc_msg(uid_t delete_uid) {
                         if (errno == EIDRM || errno == EINVAL)
                                 continue;
 
-                        log_warning_errno(errno, "Failed to remove SysV message queue %i: %m", msgid);
-                        ret = -errno;
+                        ret = log_warning_errno(errno,
+                                                "Failed to remove SysV message queue %i: %m",
+                                                msgid);
                 }
         }
 
@@ -277,6 +280,8 @@ static int clean_posix_shm(uid_t uid) {
         return clean_posix_shm_internal(dir, uid);
 }
 
+/// UNNEEDED by elogind
+#if 0
 static int clean_posix_mq(uid_t uid) {
         _cleanup_closedir_ DIR *dir = NULL;
         struct dirent *de;
@@ -302,8 +307,9 @@ static int clean_posix_mq(uid_t uid) {
                         if (errno == ENOENT)
                                 continue;
 
-                        log_warning_errno(errno, "Failed to stat() MQ segment %s: %m", de->d_name);
-                        ret = -errno;
+                        ret = log_warning_errno(errno,
+                                                "Failed to stat() MQ segment %s: %m",
+                                                de->d_name);
                         continue;
                 }
 
@@ -317,8 +323,9 @@ static int clean_posix_mq(uid_t uid) {
                         if (errno == ENOENT)
                                 continue;
 
-                        log_warning_errno(errno, "Failed to unlink POSIX message queue %s: %m", fn);
-                        ret = -errno;
+                        ret = log_warning_errno(errno,
+                                                "Failed to unlink POSIX message queue %s: %m",
+                                                fn);
                 }
         }
 
@@ -328,6 +335,7 @@ fail:
         log_warning_errno(errno, "Failed to read /dev/mqueue: %m");
         return -errno;
 }
+#endif // 0
 
 int clean_ipc(uid_t uid) {
         int ret = 0, r;
@@ -352,9 +360,12 @@ int clean_ipc(uid_t uid) {
         if (r < 0)
                 ret = r;
 
+/// elogind does not use mq_open anywhere
+#if 0
         r = clean_posix_mq(uid);
         if (r < 0)
                 ret = r;
+#endif // 0
 
         return ret;
 }