summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--udev_utils_file.c2
-rw-r--r--udevinfo.c47
-rw-r--r--udevtest.c14
3 files changed, 19 insertions, 44 deletions
diff --git a/udev_utils_file.c b/udev_utils_file.c
index acaffdc918..6a046e822d 100644
--- a/udev_utils_file.c
+++ b/udev_utils_file.c
@@ -49,7 +49,7 @@ int create_path(const char *path)
pos[0] = '\0';
dbg("stat '%s'\n", p);
- if (stat (p, &stats) == 0 && (stats.st_mode & S_IFMT) == S_IFDIR)
+ if (stat(p, &stats) == 0 && (stats.st_mode & S_IFMT) == S_IFDIR)
return 0;
if (create_path (p) != 0)
diff --git a/udevinfo.c b/udevinfo.c
index 6b7368119f..1a10f9ad07 100644
--- a/udevinfo.c
+++ b/udevinfo.c
@@ -209,9 +209,7 @@ int main(int argc, char *argv[], char *envp[])
char path[PATH_SIZE] = "";
char name[PATH_SIZE] = "";
- char temp[PATH_SIZE];
struct name_entry *name_loop;
- char *pos;
int rc = 0;
logging_init("udevinfo");
@@ -234,16 +232,20 @@ int main(int argc, char *argv[], char *envp[])
dbg("option '%c'", option);
switch (option) {
case 'n':
- dbg("udev name: %s\n", optarg);
- strlcpy(name, optarg, sizeof(name));
+ /* remove /dev if given */
+ if (strncmp(optarg, udev_root, strlen(udev_root)) == 0)
+ strlcpy(name, &optarg[strlen(udev_root)+1], sizeof(name));
+ else
+ strlcpy(name, optarg, sizeof(name));
+ dbg("name: %s\n", name);
break;
case 'p':
- dbg("udev path: %s\n", optarg);
- /* remove sysfs mountpoint if not given */
+ /* remove /sys if given */
if (strncmp(optarg, sysfs_path, strlen(sysfs_path)) == 0)
strlcpy(path, &optarg[strlen(sysfs_path)], sizeof(path));
else
strlcpy(path, optarg, sizeof(path));
+ dbg("path: %s\n", path);
break;
case 'q':
dbg("udev query: %s\n", optarg);
@@ -299,40 +301,19 @@ int main(int argc, char *argv[], char *envp[])
/* run action */
switch (action) {
case ACTION_QUERY:
- /* need devpath or node/symlink name for query */
+ /* needs devpath or node/symlink name for query */
if (path[0] != '\0') {
- /* remove sysfs_path if given */
- if (strncmp(path, sysfs_path, strlen(sysfs_path)) == 0) {
- pos = path + strlen(sysfs_path);
- } else {
- if (path[0] != '/') {
- /* prepend '/' if missing */
- strcpy(temp, "/");
- strlcpy(temp, path, sizeof(temp));
- pos = temp;
- } else {
- pos = path;
- }
- }
- if (udev_db_get_device(udev, pos) != 0) {
- fprintf(stderr, "no record for '%s' in database\n", pos);
+ if (udev_db_get_device(udev, path) != 0) {
+ fprintf(stderr, "no record for '%s' in database\n", path);
rc = 3;
goto exit;
}
} else if (name[0] != '\0') {
char devpath[PATH_SIZE];
- int len;
- /* remove udev_root if given */
- len = strlen(udev_root);
- if (strncmp(name, udev_root, len) == 0) {
- pos = &name[len+1];
- } else
- pos = name;
-
- if (udev_db_lookup_name(pos, devpath, sizeof(devpath)) != 0) {
- fprintf(stderr, "no record for '%s' in database\n", pos);
- rc = 3;
+ if (udev_db_lookup_name(name, devpath, sizeof(devpath)) != 0) {
+ fprintf(stderr, "node name not found\n");
+ rc = 4;
goto exit;
}
udev_db_get_device(udev, devpath);
diff --git a/udevtest.c b/udevtest.c
index 078674a01d..22627c05a7 100644
--- a/udevtest.c
+++ b/udevtest.c
@@ -52,7 +52,6 @@ int main(int argc, char *argv[], char *envp[])
{
struct udev_rules rules;
char *devpath;
- char temp[PATH_SIZE];
struct udevice *udev;
struct sysfs_device *dev;
int retval;
@@ -64,24 +63,19 @@ int main(int argc, char *argv[], char *envp[])
udev_config_init();
if (udev_log_priority < LOG_INFO)
udev_log_priority = LOG_INFO;
- sysfs_init();
if (argc != 2) {
info("Usage: udevtest <devpath>");
return 1;
}
- /* remove sysfs_path if given */
+ sysfs_init();
+
+ /* remove /sys if given */
if (strncmp(argv[1], sysfs_path, strlen(sysfs_path)) == 0)
devpath = &argv[1][strlen(sysfs_path)];
else
- if (argv[1][0] != '/') {
- /* prepend '/' if missing */
- snprintf(temp, sizeof(temp), "/%s", argv[1]);
- temp[sizeof(temp)-1] = '\0';
- devpath = temp;
- } else
- devpath = argv[1];
+ devpath = argv[1];
udev_rules_init(&rules, 0);