chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: rework strappenda(), and rename it strjoina()
[elogind.git]
/
src
/
core
/
unit.c
diff --git
a/src/core/unit.c
b/src/core/unit.c
index 7311c5804dacb7fd597558e4103eb44dedcb01d6..2f95737da00a8a41d7101580c04b355c1519776b 100644
(file)
--- a/
src/core/unit.c
+++ b/
src/core/unit.c
@@
-868,7
+868,7
@@
void unit_dump(Unit *u, FILE *f, const char *prefix) {
assert(u->type >= 0);
prefix = strempty(prefix);
assert(u->type >= 0);
prefix = strempty(prefix);
- prefix2 = str
append
a(prefix, "\t");
+ prefix2 = str
join
a(prefix, "\t");
fprintf(f,
"%s-> Unit %s:\n"
fprintf(f,
"%s-> Unit %s:\n"
@@
-1399,7
+1399,6
@@
static void unit_status_log_starting_stopping_reloading(Unit *u, JobType t) {
DISABLE_WARNING_FORMAT_NONLITERAL;
snprintf(buf, sizeof(buf), format, unit_description(u));
DISABLE_WARNING_FORMAT_NONLITERAL;
snprintf(buf, sizeof(buf), format, unit_description(u));
- char_array_0(buf);
REENABLE_WARNING;
mid = t == JOB_START ? SD_MESSAGE_UNIT_STARTING :
REENABLE_WARNING;
mid = t == JOB_START ? SD_MESSAGE_UNIT_STARTING :
@@
-1423,6
+1422,7
@@
static void unit_status_log_starting_stopping_reloading(Unit *u, JobType t) {
int unit_start(Unit *u) {
UnitActiveState state;
Unit *following;
int unit_start(Unit *u) {
UnitActiveState state;
Unit *following;
+ int r;
assert(u);
assert(u);
@@
-1461,9
+1461,6
@@
int unit_start(Unit *u) {
return unit_start(following);
}
return unit_start(following);
}
- unit_status_log_starting_stopping_reloading(u, JOB_START);
- unit_status_print_starting_stopping(u, JOB_START);
-
if (UNIT_VTABLE(u)->supported && !UNIT_VTABLE(u)->supported(u->manager))
return -ENOTSUP;
if (UNIT_VTABLE(u)->supported && !UNIT_VTABLE(u)->supported(u->manager))
return -ENOTSUP;
@@
-1479,7
+1476,14
@@
int unit_start(Unit *u) {
unit_add_to_dbus_queue(u);
unit_add_to_dbus_queue(u);
- return UNIT_VTABLE(u)->start(u);
+ r = UNIT_VTABLE(u)->start(u);
+ if (r <= 0)
+ return r;
+
+ /* Log if the start function actually did something */
+ unit_status_log_starting_stopping_reloading(u, JOB_START);
+ unit_status_print_starting_stopping(u, JOB_START);
+ return r;
}
bool unit_can_start(Unit *u) {
}
bool unit_can_start(Unit *u) {
@@
-1503,6
+1507,7
@@
bool unit_can_isolate(Unit *u) {
int unit_stop(Unit *u) {
UnitActiveState state;
Unit *following;
int unit_stop(Unit *u) {
UnitActiveState state;
Unit *following;
+ int r;
assert(u);
assert(u);
@@
-1516,15
+1521,18
@@
int unit_stop(Unit *u) {
return unit_stop(following);
}
return unit_stop(following);
}
- unit_status_log_starting_stopping_reloading(u, JOB_STOP);
- unit_status_print_starting_stopping(u, JOB_STOP);
-
if (!UNIT_VTABLE(u)->stop)
return -EBADR;
unit_add_to_dbus_queue(u);
if (!UNIT_VTABLE(u)->stop)
return -EBADR;
unit_add_to_dbus_queue(u);
- return UNIT_VTABLE(u)->stop(u);
+ r = UNIT_VTABLE(u)->stop(u);
+ if (r <= 0)
+ return r;
+
+ unit_status_log_starting_stopping_reloading(u, JOB_STOP);
+ unit_status_print_starting_stopping(u, JOB_STOP);
+ return r;
}
/* Errors:
}
/* Errors:
@@
-1535,6
+1543,7
@@
int unit_stop(Unit *u) {
int unit_reload(Unit *u) {
UnitActiveState state;
Unit *following;
int unit_reload(Unit *u) {
UnitActiveState state;
Unit *following;
+ int r;
assert(u);
assert(u);
@@
-1559,10
+1568,14
@@
int unit_reload(Unit *u) {
return unit_reload(following);
}
return unit_reload(following);
}
- unit_status_log_starting_stopping_reloading(u, JOB_RELOAD);
-
unit_add_to_dbus_queue(u);
unit_add_to_dbus_queue(u);
- return UNIT_VTABLE(u)->reload(u);
+
+ r = UNIT_VTABLE(u)->reload(u);
+ if (r <= 0)
+ return r;
+
+ unit_status_log_starting_stopping_reloading(u, JOB_RELOAD);
+ return r;
}
bool unit_can_reload(Unit *u) {
}
bool unit_can_reload(Unit *u) {