chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udev: timeout - warn after a third of the timeout before killing
[elogind.git]
/
src
/
core
/
device.c
diff --git
a/src/core/device.c
b/src/core/device.c
index 444286e02b2a7bfc14bd3a5b3c6bab6f10f1955b..0f28a168740de09d95bb46c2cbc4165ea11d604a 100644
(file)
--- a/
src/core/device.c
+++ b/
src/core/device.c
@@
-220,25
+220,24
@@
static int device_make_description(Unit *u, struct udev_device *dev, const char
static int device_add_udev_wants(Unit *u, struct udev_device *dev) {
const char *wants;
static int device_add_udev_wants(Unit *u, struct udev_device *dev) {
const char *wants;
- c
har *state, *w
;
+ c
onst char *word, *state
;
size_t l;
int r;
size_t l;
int r;
+ const char *property;
assert(u);
assert(dev);
assert(u);
assert(dev);
- wants = udev_device_get_property_value(
- dev,
- u->manager->running_as == SYSTEMD_USER ? "SYSTEMD_USER_WANTS" : "SYSTEMD_WANTS");
-
+ property = u->manager->running_as == SYSTEMD_USER ? "SYSTEMD_USER_WANTS" : "SYSTEMD_WANTS";
+ wants = udev_device_get_property_value(dev, property);
if (!wants)
return 0;
if (!wants)
return 0;
- FOREACH_WORD_QUOTED(w, l, wants, state) {
+ FOREACH_WORD_QUOTED(w
ord
, l, wants, state) {
_cleanup_free_ char *n = NULL;
char e[l+1];
_cleanup_free_ char *n = NULL;
char e[l+1];
- memcpy(e, w, l);
+ memcpy(e, w
ord
, l);
e[l] = 0;
n = unit_name_mangle(e, MANGLE_NOGLOB);
e[l] = 0;
n = unit_name_mangle(e, MANGLE_NOGLOB);
@@
-249,6
+248,9
@@
static int device_add_udev_wants(Unit *u, struct udev_device *dev) {
if (r < 0)
return r;
}
if (r < 0)
return r;
}
+ if (!isempty(state))
+ log_warning_unit(u->id, "Property %s on %s has trailing garbage, ignoring.",
+ property, strna(udev_device_get_syspath(dev)));
return 0;
}
return 0;
}
@@
-393,13
+395,13
@@
static int device_process_new_device(Manager *m, struct udev_device *dev) {
* aliases */
alias = udev_device_get_property_value(dev, "SYSTEMD_ALIAS");
if (alias) {
* aliases */
alias = udev_device_get_property_value(dev, "SYSTEMD_ALIAS");
if (alias) {
- c
har *state, *w
;
+ c
onst char *word, *state
;
size_t l;
size_t l;
- FOREACH_WORD_QUOTED(w, l, alias, state) {
+ FOREACH_WORD_QUOTED(w
ord
, l, alias, state) {
char e[l+1];
char e[l+1];
- memcpy(e, w, l);
+ memcpy(e, w
ord
, l);
e[l] = 0;
if (path_is_absolute(e))
e[l] = 0;
if (path_is_absolute(e))
@@
-407,6
+409,8
@@
static int device_process_new_device(Manager *m, struct udev_device *dev) {
else
log_warning("SYSTEMD_ALIAS for %s is not an absolute path, ignoring: %s", sysfs, e);
}
else
log_warning("SYSTEMD_ALIAS for %s is not an absolute path, ignoring: %s", sysfs, e);
}
+ if (!isempty(state))
+ log_warning("SYSTEMD_ALIAS for %s has trailing garbage, ignoring.", sysfs);
}
return 0;
}
return 0;