1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-25 18:50:18 +03:00

libudev: monitor - handle kernel supplied DEVNAME properly

This commit is contained in:
Kay Sievers 2009-07-03 18:40:38 +02:00
parent fc8933f7f6
commit 9cc94b1522
3 changed files with 8 additions and 9 deletions

View File

@ -29,7 +29,7 @@ libudev_la_SOURCES =\
libudev-queue.c
LT_CURRENT=4
LT_REVISION=0
LT_REVISION=1
LT_AGE=4
libudev_la_LDFLAGS = \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \

View File

@ -1299,6 +1299,7 @@ int udev_device_set_knodename(struct udev_device *udev_device, const char *knode
udev_device->knodename = strdup(knodename);
if (udev_device->knodename == NULL)
return -ENOMEM;
udev_device_add_property(udev_device, "DEVNAME", udev_device->knodename);
return 0;
}

View File

@ -504,7 +504,6 @@ struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monito
int action_set = 0;
int maj = 0;
int min = 0;
int is_kernel = 0;
retry:
if (udev_monitor == NULL)
@ -545,10 +544,10 @@ retry:
}
} else if (snl.nl_groups == UDEV_MONITOR_KERNEL) {
if (snl.nl_pid > 0) {
info(udev_monitor->udev, "multicast kernel netlink message from pid %d ignored\n", snl.nl_pid);
info(udev_monitor->udev, "multicast kernel netlink message from pid %d ignored\n",
snl.nl_pid);
return NULL;
}
is_kernel = 1;
}
}
@ -590,9 +589,8 @@ retry:
}
udev_device = udev_device_new(udev_monitor->udev);
if (udev_device == NULL) {
if (udev_device == NULL)
return NULL;
}
while (bufpos < buflen) {
char *key;
@ -616,10 +614,10 @@ retry:
} else if (strncmp(key, "DEVTYPE=", 8) == 0) {
udev_device_set_devtype(udev_device, &key[8]);
} else if (strncmp(key, "DEVNAME=", 8) == 0) {
if (is_kernel)
udev_device_set_knodename(udev_device, &key[8]);
else
if (key[8] == '/')
udev_device_set_devnode(udev_device, &key[8]);
else
udev_device_set_knodename(udev_device, &key[8]);
} else if (strncmp(key, "DEVLINKS=", 9) == 0) {
char devlinks[UTIL_PATH_SIZE];
char *slink;