summaryrefslogtreecommitdiff
path: root/src/systemctl
diff options
context:
space:
mode:
authorSimon Peeters <peeters.simon@gmail.com>2012-08-08 02:04:40 +0200
committerSimon Peeters <peeters.simon@gmail.com>2012-08-08 02:04:40 +0200
commitc67de56f50b83ec0d34308a6de80f6c65879b1b5 (patch)
treea03b8389b92daa331b1475e980ff9e8b9db11dc3 /src/systemctl
parentf22f08cd5fc072fc4d7eec4700b42e4308ada42e (diff)
move bus_method_call_with_reply() to dbus-common
Diffstat (limited to 'src/systemctl')
-rw-r--r--src/systemctl/systemctl.c75
1 files changed, 1 insertions, 74 deletions
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index 1c06507e4c..2e0aaaa9fa 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -202,21 +202,6 @@ static const char *ansi_highlight_green(bool b) {
return b ? ANSI_HIGHLIGHT_GREEN_ON : ANSI_HIGHLIGHT_OFF;
}
-static bool error_is_no_service(const DBusError *error) {
- assert(error);
-
- if (!dbus_error_is_set(error))
- return false;
-
- if (dbus_error_has_name(error, DBUS_ERROR_NAME_HAS_NO_OWNER))
- return true;
-
- if (dbus_error_has_name(error, DBUS_ERROR_SERVICE_UNKNOWN))
- return true;
-
- return startswith(error->name, "org.freedesktop.DBus.Error.Spawn.");
-}
-
static int translate_bus_error_to_exit_status(int r, const DBusError *error) {
assert(error);
@@ -245,64 +230,6 @@ static int translate_bus_error_to_exit_status(int r, const DBusError *error) {
return EXIT_FAILURE;
}
-static int bus_method_call_with_reply(DBusConnection *bus,
- const char *destination,
- const char *path,
- const char *interface,
- const char *method,
- DBusMessage **return_reply,
- DBusError *return_error,
- int first_arg_type, ...) {
- DBusError error;
- DBusMessage *m, *reply;
- va_list ap;
- int r = 0;
-
- dbus_error_init(&error);
- assert(bus);
-
- m = dbus_message_new_method_call(destination, path, interface, method);
- if (!m) {
- r = log_oom();
- goto finish;
- }
-
- va_start(ap, first_arg_type);
- if (!dbus_message_append_args_valist(m, first_arg_type, ap)) {
- va_end(ap);
- dbus_message_unref(m);
- r = log_oom();
- goto finish;
- }
- va_end(ap);
-
- reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error);
- dbus_message_unref(m);
- if (!reply) {
- log_error("Failed to issue method call: %s", bus_error_message(&error));
- if (error_is_no_service(&error))
- r = -ENOENT;
- else if (dbus_error_has_name(&error, DBUS_ERROR_ACCESS_DENIED))
- r = -EACCES;
- else if (dbus_error_has_name(&error, DBUS_ERROR_NO_REPLY))
- r = -ETIMEDOUT;
- else
- r = -EIO;
- goto finish;
- }
- if (return_reply)
- *return_reply = reply;
- else
- dbus_message_unref(reply);
-finish:
- if(return_error)
- *return_error=error;
- else
- dbus_error_free(&error);
-
- return r;
-}
-
static void warn_wall(enum action a) {
static const char *table[_ACTION_MAX] = {
[ACTION_HALT] = "The system is going down for system halt NOW!",
@@ -4826,7 +4753,7 @@ static int talk_upstart(void) {
if (!(reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error))) {
- if (error_is_no_service(&error)) {
+ if (bus_error_is_no_service(&error)) {
r = -EADDRNOTAVAIL;
goto finish;
}