chiark / gitweb /
lookup_user, lookup_group: report "unknown user" and "lookup failed"
[elogind.git] / udevd.c
diff --git a/udevd.c b/udevd.c
index af9e118c55061146b4952f416b8fb9385c534386..5c51beed1e0d32d85a3d1332df28bfff19f964e9 100644 (file)
--- a/udevd.c
+++ b/udevd.c
@@ -118,7 +118,7 @@ static int udev_event_process(struct udevd_uevent_msg *msg)
        if (udev == NULL)
                return -1;
        strlcpy(udev->action, msg->action, sizeof(udev->action));
-       sysfs_device_set_values(udev->dev, msg->devpath, msg->subsystem);
+       sysfs_device_set_values(udev->dev, msg->devpath, msg->subsystem, msg->driver);
        udev->devt = msg->devt;
 
        retval = udev_device_event(&rules, udev);
@@ -593,6 +593,8 @@ static struct udevd_uevent_msg *get_msg_from_envbuf(const char *buf, int buf_siz
                        msg->devpath = &key[8];
                else if (strncmp(key, "SUBSYSTEM=", 10) == 0)
                        msg->subsystem = &key[10];
+               else if (strncmp(key, "DRIVER=", 7) == 0)
+                       msg->driver = &key[7];
                else if (strncmp(key, "SEQNUM=", 7) == 0)
                        msg->seqnum = strtoull(&key[7], NULL, 10);
                else if (strncmp(key, "PHYSDEVPATH=", 12) == 0)
@@ -810,7 +812,6 @@ static void reap_sigchilds(void)
 static int init_udevd_socket(void)
 {
        struct sockaddr_un saddr;
-       const int buffersize = 16 * 1024 * 1024;
        socklen_t addrlen;
        const int feature_on = 1;
        int retval;
@@ -827,9 +828,6 @@ static int init_udevd_socket(void)
                return -1;
        }
 
-       /* set receive buffersize */
-       setsockopt(udevd_sock, SOL_SOCKET, SO_RCVBUFFORCE, &buffersize, sizeof(buffersize));
-
        /* the bind takes care of ensuring only one copy running */
        retval = bind(udevd_sock, (struct sockaddr *) &saddr, addrlen);
        if (retval < 0) {