chiark / gitweb /
remove unused variables
[elogind.git] / udevd.c
diff --git a/udevd.c b/udevd.c
index 7978bdb08abd05c1e8eb49d6ae7c776b1e7fecd9..ff61c656c872c3d834efef79f6be1604136f9953 100644 (file)
--- a/udevd.c
+++ b/udevd.c
@@ -176,6 +176,7 @@ static void export_event_state(struct uevent_msg *msg, enum event_state state)
        switch (state) {
        case EVENT_QUEUED:
                unlink(filename_failed);
+               delete_path(filename_failed);
 
                strlcpy(target, sysfs_path, sizeof(target));
                strlcat(target, msg->devpath, sizeof(target));
@@ -183,16 +184,26 @@ static void export_event_state(struct uevent_msg *msg, enum event_state state)
                symlink(target, filename);
                return;
        case EVENT_FINISHED:
+       case EVENT_FAILED:
                unlink(filename_failed);
+               delete_path(filename_failed);
 
-               /* don't remove if events for the same path are still pending */
+               /* don't remove, if events for the same path are still pending */
                list_for_each_entry(loop_msg, &running_list, node)
                        if (loop_msg->devpath && strcmp(loop_msg->devpath, msg->devpath) == 0)
                                return;
-               unlink(filename);
-       case EVENT_FAILED:
-               create_path(filename_failed);
-               rename(filename, filename_failed);
+
+               /* move failed events to the failed directory */
+               if (state == EVENT_FAILED) {
+                       create_path(filename_failed);
+                       rename(filename, filename_failed);
+               } else {
+                       unlink(filename);
+               }
+
+               /* clean up the queue directory */
+               delete_path(filename);
+
                return;
        }
 }
@@ -540,7 +551,7 @@ static struct uevent_msg *get_udevd_msg(void)
        size = recvmsg(udevd_sock, &smsg, 0);
        if (size <  0) {
                if (errno != EINTR)
-                       err("unable to receive udevd message: %s", strerror(errno));
+                       err("unable to receive user udevd message: %s", strerror(errno));
                return NULL;
        }
        cmsg = CMSG_FIRSTHDR(&smsg);
@@ -615,7 +626,7 @@ static struct uevent_msg *get_netlink_msg(void)
        size = recv(uevent_netlink_sock, &buffer, sizeof(buffer), 0);
        if (size <  0) {
                if (errno != EINTR)
-                       err("unable to receive udevd message: %s", strerror(errno));
+                       err("unable to receive kernel netlink message: %s", strerror(errno));
                return NULL;
        }
 
@@ -968,13 +979,8 @@ int main(int argc, char *argv[], char *envp[])
                /* get user socket message */
                if (FD_ISSET(udevd_sock, &readfds)) {
                        msg = get_udevd_msg();
-                       if (msg) {
-                               if (msg->type == UDEVD_UEVENT_UDEVSEND && msg->seqnum != 0) {
-                                       info("skip non-kernel message with SEQNUM");
-                                       free(msg);
-                               } else
-                                       msg_queue_insert(msg);
-                       }
+                       if (msg)
+                               msg_queue_insert(msg);
                }
 
                /* get kernel netlink message */