chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
cd86519
)
path: support specifier resolvin in .path units
author
Lennart Poettering
<lennart@poettering.net>
Wed, 19 Sep 2012 18:09:27 +0000
(20:09 +0200)
committer
Lennart Poettering
<lennart@poettering.net>
Wed, 19 Sep 2012 18:09:59 +0000
(20:09 +0200)
src/core/load-fragment.c
patch
|
blob
|
history
diff --git
a/src/core/load-fragment.c
b/src/core/load-fragment.c
index 0d5d841429aeaaae1a4212f05a06a44ff365d8ea..93f051af470ec8ab8f81c08c98b050acb150f86a 100644
(file)
--- a/
src/core/load-fragment.c
+++ b/
src/core/load-fragment.c
@@
-186,7
+186,7
@@
int config_parse_unit_path_printf(
k = unit_full_printf(u, rvalue);
if (!k)
k = unit_full_printf(u, rvalue);
if (!k)
- return
-ENOMEM
;
+ return
log_oom()
;
r = config_parse_path(filename, line, section, lvalue, ltype, k, data, userdata);
free(k);
r = config_parse_path(filename, line, section, lvalue, ltype, k, data, userdata);
free(k);
@@
-1193,32
+1193,36
@@
int config_parse_path_spec(
Path *p = data;
PathSpec *s;
PathType b;
Path *p = data;
PathSpec *s;
PathType b;
+ char *k;
assert(filename);
assert(lvalue);
assert(rvalue);
assert(data);
assert(filename);
assert(lvalue);
assert(rvalue);
assert(data);
- if ((b = path_type_from_string(lvalue)) < 0) {
+ b = path_type_from_string(lvalue);
+ if (b < 0) {
log_error("[%s:%u] Failed to parse path type, ignoring: %s", filename, line, lvalue);
return 0;
}
log_error("[%s:%u] Failed to parse path type, ignoring: %s", filename, line, lvalue);
return 0;
}
- if (!path_is_absolute(rvalue)) {
- log_error("[%s:%u] Path is not absolute, ignoring: %s", filename, line, rvalue);
+ k = unit_full_printf(UNIT(p), rvalue);
+ if (!k)
+ return log_oom();
+
+ if (!path_is_absolute(k)) {
+ log_error("[%s:%u] Path is not absolute, ignoring: %s", filename, line, k);
+ free(k);
return 0;
}
return 0;
}
- if (!(s = new0(PathSpec, 1)))
- return -ENOMEM;
-
- if (!(s->path = strdup(rvalue))) {
- free(s);
- return -ENOMEM;
+ s = new0(PathSpec, 1);
+ if (!s) {
+ free(k);
+ return log_oom();
}
}
- path_kill_slashes(s->path);
-
+ s->path = path_kill_slashes(k);
s->type = b;
s->inotify_fd = -1;
s->type = b;
s->inotify_fd = -1;