chiark / gitweb /
udevd: control - no not delete socket file when --daemon is used
authorKay Sievers <kay.sievers@vrfy.org>
Sun, 9 Oct 2011 22:38:56 +0000 (00:38 +0200)
committerKay Sievers <kay.sievers@vrfy.org>
Sun, 9 Oct 2011 22:38:56 +0000 (00:38 +0200)
udev/udev-ctrl.c
udev/udev.h
udev/udevd.c

index 43484cc8386fbea3c9a01c4c37b0d7b89b767e96..4bca807b6956fad7750df9d3098d577c506e7cad 100644 (file)
@@ -156,12 +156,17 @@ struct udev_ctrl *udev_ctrl_unref(struct udev_ctrl *uctrl)
                return uctrl;
        if (uctrl->sock >= 0)
                close(uctrl->sock);
                return uctrl;
        if (uctrl->sock >= 0)
                close(uctrl->sock);
-       if (uctrl->cleanup_socket)
-               unlink(uctrl->saddr.sun_path);
        free(uctrl);
        return NULL;
 }
 
        free(uctrl);
        return NULL;
 }
 
+int udev_ctrl_cleanup(struct udev_ctrl *uctrl)
+{
+       if (uctrl->cleanup_socket)
+               unlink(uctrl->saddr.sun_path);
+       return 0;
+}
+
 int udev_ctrl_get_fd(struct udev_ctrl *uctrl)
 {
        if (uctrl == NULL)
 int udev_ctrl_get_fd(struct udev_ctrl *uctrl)
 {
        if (uctrl == NULL)
index 402c738aee99f35e14c4199bf751d0fd932170f7..eaba4ed341b181eac1bd96876521dd5187dded36 100644 (file)
@@ -102,6 +102,7 @@ struct udev_ctrl *udev_ctrl_new_from_fd(struct udev *udev, int fd);
 int udev_ctrl_enable_receiving(struct udev_ctrl *uctrl);
 struct udev_ctrl *udev_ctrl_ref(struct udev_ctrl *uctrl);
 struct udev_ctrl *udev_ctrl_unref(struct udev_ctrl *uctrl);
 int udev_ctrl_enable_receiving(struct udev_ctrl *uctrl);
 struct udev_ctrl *udev_ctrl_ref(struct udev_ctrl *uctrl);
 struct udev_ctrl *udev_ctrl_unref(struct udev_ctrl *uctrl);
+int udev_ctrl_cleanup(struct udev_ctrl *uctrl);
 struct udev *udev_ctrl_get_udev(struct udev_ctrl *uctrl);
 int udev_ctrl_get_fd(struct udev_ctrl *uctrl);
 int udev_ctrl_send_set_log_level(struct udev_ctrl *uctrl, int priority, int timeout);
 struct udev *udev_ctrl_get_udev(struct udev_ctrl *uctrl);
 int udev_ctrl_get_fd(struct udev_ctrl *uctrl);
 int udev_ctrl_send_set_log_level(struct udev_ctrl *uctrl, int priority, int timeout);
index fdb3e420024f60fbba39fda60dd5179cbdc55414..60edea98e1144774ef5a5145d077aefc9d8c92b9 100644 (file)
@@ -1420,7 +1420,7 @@ int main(int argc, char *argv[])
                        goto exit;
                default:
                        rc = EXIT_SUCCESS;
                        goto exit;
                default:
                        rc = EXIT_SUCCESS;
-                       goto exit_keep_queue;
+                       goto exit_daemonize;
                }
 
                setsid();
                }
 
                setsid();
@@ -1704,7 +1704,8 @@ int main(int argc, char *argv[])
        rc = EXIT_SUCCESS;
 exit:
        udev_queue_export_cleanup(udev_queue_export);
        rc = EXIT_SUCCESS;
 exit:
        udev_queue_export_cleanup(udev_queue_export);
-exit_keep_queue:
+       udev_ctrl_cleanup(udev_ctrl);
+exit_daemonize:
        if (fd_ep >= 0)
                close(fd_ep);
        worker_list_cleanup(udev);
        if (fd_ep >= 0)
                close(fd_ep);
        worker_list_cleanup(udev);