diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-07-03 19:49:03 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-07-03 19:49:03 +0200 |
commit | 03976f7b4a84b8b1492a549a3470b2bba8f37008 (patch) | |
tree | 8447bf76d0422ed574659b37f7de36493b5f691c /src/systemctl/systemctl.c | |
parent | 200edc2bcfdf3845ee8ee5c71306dfbe20dc28d3 (diff) |
sd-bus: introduce new sd_bus_flush_close_unref() call
sd_bus_flush_close_unref() is a call that simply combines sd_bus_flush()
(which writes all unwritten messages out) + sd_bus_close() (which
terminates the connection, releasing all unread messages) +
sd_bus_unref() (which frees the connection).
The combination of this call is used pretty frequently in systemd tools
right before exiting, and should also be relevant for most external
clients, and is hence useful to cover in a call of its own.
Previously the combination of the three calls was already done in the
_cleanup_bus_close_unref_ macro, but this was only available internally.
Also see #327
Diffstat (limited to 'src/systemctl/systemctl.c')
-rw-r--r-- | src/systemctl/systemctl.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 538838b7fc..6db4d6587a 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -617,7 +617,7 @@ static int get_unit_list_recursive( return r; STRV_FOREACH(i, machines) { - _cleanup_bus_close_unref_ sd_bus *container = NULL; + _cleanup_bus_flush_close_unref_ sd_bus *container = NULL; int k; r = sd_bus_open_system_machine(&container, *i); @@ -1709,7 +1709,7 @@ static int compare_machine_info(const void *a, const void *b) { } static int get_machine_properties(sd_bus *bus, struct machine_info *mi) { - _cleanup_bus_close_unref_ sd_bus *container = NULL; + _cleanup_bus_flush_close_unref_ sd_bus *container = NULL; int r; assert(mi); @@ -7340,7 +7340,7 @@ static int halt_main(sd_bus *bus) { if (arg_when > 0) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_bus_close_unref_ sd_bus *b = NULL; + _cleanup_bus_flush_close_unref_ sd_bus *b = NULL; _cleanup_free_ char *m = NULL; if (avoid_bus()) { @@ -7449,7 +7449,7 @@ static int runlevel_main(void) { } int main(int argc, char*argv[]) { - _cleanup_bus_close_unref_ sd_bus *bus = NULL; + _cleanup_bus_flush_close_unref_ sd_bus *bus = NULL; int r; setlocale(LC_ALL, ""); @@ -7517,7 +7517,7 @@ int main(int argc, char*argv[]) { case ACTION_CANCEL_SHUTDOWN: { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_bus_close_unref_ sd_bus *b = NULL; + _cleanup_bus_flush_close_unref_ sd_bus *b = NULL; _cleanup_free_ char *m = NULL; if (avoid_bus()) { |