chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rules: SUSE update
[elogind.git]
/
udev_rules.c
diff --git
a/udev_rules.c
b/udev_rules.c
index d77d5ec19691c4c664c2cb1ddb3314352f76a67c..5c3d7d5d0646a81d98507a5124d5efde603cf5dd 100644
(file)
--- a/
udev_rules.c
+++ b/
udev_rules.c
@@
-532,7
+532,7
@@
found:
}
break;
case SUBST_TEMP_NODE:
}
break;
case SUBST_TEMP_NODE:
- if (udev->tmp_node[0] == '\0') {
+ if (udev->tmp_node[0] == '\0'
&& major(udev->devt) > 0
) {
dbg("create temporary device node for callout");
snprintf(udev->tmp_node, sizeof(udev->tmp_node), "%s/.tmp-%u-%u",
udev_root, major(udev->devt), minor(udev->devt));
dbg("create temporary device node for callout");
snprintf(udev->tmp_node, sizeof(udev->tmp_node), "%s/.tmp-%u-%u",
udev_root, major(udev->devt), minor(udev->devt));
@@
-831,18
+831,23
@@
try_parent:
char temp_value[NAME_SIZE];
const char *key_name = key_pair_name(rule, pair);
const char *value = key_val(rule, &pair->key);
char temp_value[NAME_SIZE];
const char *key_name = key_pair_name(rule, pair);
const char *value = key_val(rule, &pair->key);
- char *key_value;
/* make sure we don't write to the same string we possibly read from */
strlcpy(temp_value, value, sizeof(temp_value));
udev_rules_apply_format(udev, temp_value, NAME_SIZE);
/* make sure we don't write to the same string we possibly read from */
strlcpy(temp_value, value, sizeof(temp_value));
udev_rules_apply_format(udev, temp_value, NAME_SIZE);
- key_value = name_list_key_add(&udev->env_list, key_name, temp_value);
- if (key_value == NULL)
- break;
+ if (temp_value[0] == '\0') {
+ name_list_key_remove(&udev->env_list, key_name);
+ unsetenv(key_name);
+ info("unset ENV '%s'", key_name);
+ } else {
+ char *key_value = name_list_key_add(&udev->env_list, key_name, temp_value);
- putenv(key_value);
- dbg("export ENV '%s'", key_value);
+ if (key_value == NULL)
+ break;
+ putenv(key_value);
+ info("set ENV '%s'", key_value);
+ }
}
}
}
}
@@
-914,7
+919,7
@@
int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev)
udev->ignore_remove = 1;
dbg("remove event should be ignored");
}
udev->ignore_remove = 1;
dbg("remove event should be ignored");
}
- if (rule->link_priority) {
+ if (rule->link_priority
!= 0
) {
udev->link_priority = rule->link_priority;
info("link_priority=%i", udev->link_priority);
}
udev->link_priority = rule->link_priority;
info("link_priority=%i", udev->link_priority);
}