chiark / gitweb /
fsck: use _cleanup_close_pair_ where appropriate
[elogind.git] / src / fsckd / fsckd.c
index 4851b9275889f0981aa59cefa44d889e244b13a1..dedc828a890b014233a64d6c33dd785dc199dbac 100644 (file)
@@ -77,9 +77,12 @@ typedef struct Manager {
         unsigned n_clients;
 
         int clear;
+
         int connection_fd;
+        sd_event_source *connection_event_source;
 
         FILE *console;
+
         double percent;
         int numdevices;
 
@@ -444,6 +447,7 @@ static void manager_free(Manager *m) {
                 fflush(m->console);
         }
 
+        sd_event_source_unref(m->connection_event_source);
         safe_close(m->connection_fd);
 
         while (m->clients)
@@ -483,7 +487,7 @@ static int manager_new(Manager **ret, int fd) {
                         return -errno;
         }
 
-        r = sd_event_add_io(m->event, NULL, fd, EPOLLIN, manager_new_connection_handler, m);
+        r = sd_event_add_io(m->event, &m->connection_event_source, fd, EPOLLIN, manager_new_connection_handler, m);
         if (r < 0)
                 return r;