udev.import_devpath.diff 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. diff -u -p udev-106/udev_rules.j1.c udev-106/udev_rules.c
  2. --- udev-106/udev_rules.j1.c 2007-03-15 10:07:51.000000000 -0700
  3. +++ udev-106/udev_rules.c 2007-03-15 10:09:50.000000000 -0700
  4. @@ -186,7 +186,16 @@ static int import_keys_into_env(struct u
  5. linepos = line;
  6. if (get_key(&linepos, &variable, &value) == 0) {
  7. dbg("import '%s=%s'", variable, value);
  8. - name_list_key_add(&udev->env_list, variable, value);
  9. + /* handle device, renamed by external tool,
  10. + * returning new path */
  11. + if (strcmp(variable, "DEVPATH") == 0) {
  12. + info("updating devpath from '%s' to '%s'",
  13. + udev->dev->devpath, value);
  14. + sysfs_device_set_values(udev->dev, value,
  15. + NULL, NULL);
  16. + } else
  17. + name_list_key_add(&udev->env_list,
  18. + variable, value);
  19. setenv(variable, value, 1);
  20. }
  21. }
  22. diff -u -p udev-106/udevtest.j1.c udev-106/udevtest.c
  23. --- udev-106/udevtest.j1.c 2007-03-15 10:39:16.000000000 -0700
  24. +++ udev-106/udevtest.c 2007-03-15 10:42:09.000000000 -0700
  25. @@ -59,8 +59,13 @@ int main(int argc, char *argv[], char *e
  26. info("version %s", UDEV_VERSION);
  27. udev_config_init();
  28. - if (udev_log_priority < LOG_INFO)
  29. + if (udev_log_priority < LOG_INFO) {
  30. + char priority[32];
  31. +
  32. udev_log_priority = LOG_INFO;
  33. + sprintf(priority, "%i", udev_log_priority);
  34. + setenv("UDEV_LOG", priority, 1);
  35. + }
  36. for (i = 1 ; i < argc; i++) {
  37. char *arg = argv[i];