1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-01-27 14:03:43 +03:00

fix lookup for name in the udevdb, it should return the devpath

Signed-off-by: Kay Sievers <kay.sievers@suse.de>
This commit is contained in:
Kay Sievers 2005-08-26 22:43:49 +02:00
parent 8f847bb845
commit 3ad7a5b1a5

View File

@ -207,6 +207,8 @@ int udev_db_get_device(struct udevice *udev, const char *devpath)
int udev_db_search_name(char *devpath, size_t len, const char *name)
{
DIR *dir;
char path[PATH_SIZE];
int found = 0;
dir = opendir(udev_db_path);
if (dir == NULL) {
@ -214,10 +216,9 @@ int udev_db_search_name(char *devpath, size_t len, const char *name)
return -1;
}
while (1) {
while (!found) {
struct dirent *ent;
char filename[PATH_SIZE];
char path[PATH_SIZE];
char nodename[PATH_SIZE];
char *bufline;
char *buf;
@ -242,7 +243,7 @@ int udev_db_search_name(char *devpath, size_t len, const char *name)
}
cur = 0;
while (cur < bufsize) {
while (cur < bufsize && !found) {
count = buf_get_line(buf, bufsize, cur);
bufline = &buf[cur];
cur += count+1;
@ -262,11 +263,8 @@ int udev_db_search_name(char *devpath, size_t len, const char *name)
nodename[count-2] = '\0';
dbg("compare '%s' '%s'", nodename, name);
if (strcmp(nodename, name) == 0) {
strlcpy(devpath, nodename, len);
devpath[count-2] = '\0';
file_unmap(buf, bufsize);
closedir(dir);
return 0;
found = 1;
break;
}
break;
default:
@ -277,7 +275,11 @@ int udev_db_search_name(char *devpath, size_t len, const char *name)
}
closedir(dir);
return -1;
if (found) {
strlcpy(devpath, path, len);
return 0;
} else
return -1;
}
int udev_db_dump_names(int (*handler_function)(const char *path, const char *name))