chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
install: various improvements
[elogind.git]
/
src
/
dbus.c
diff --git
a/src/dbus.c
b/src/dbus.c
index 0008cfd303a933ed24b0bc6a5153f6ec4a3dd9a1..2998c5817833f88357da3b8c61ae3d8e435d5c9e 100644
(file)
--- a/
src/dbus.c
+++ b/
src/dbus.c
@@
-42,6
+42,7
@@
#include "dbus-swap.h"
#include "dbus-timer.h"
#include "dbus-path.h"
#include "dbus-swap.h"
#include "dbus-timer.h"
#include "dbus-path.h"
+#include "bus-errors.h"
#define CONNECTIONS_MAX 52
#define CONNECTIONS_MAX 52
@@
-380,13
+381,13
@@
static DBusHandlerResult api_bus_message_filter(DBusConnection *connection, DBus
log_debug("Got D-Bus activation request for %s", name);
log_debug("Got D-Bus activation request for %s", name);
- r = manager_load_unit(m, name, NULL, &u);
+ r = manager_load_unit(m, name, NULL, &
error, &
u);
if (r >= 0 && u->meta.only_by_dependency)
r = -EPERM;
if (r >= 0)
if (r >= 0 && u->meta.only_by_dependency)
r = -EPERM;
if (r >= 0)
- r = manager_add_job(m, JOB_START, u, JOB_REPLACE, true, NULL);
+ r = manager_add_job(m, JOB_START, u, JOB_REPLACE, true,
&error,
NULL);
if (r < 0) {
const char *id, *text;
if (r < 0) {
const char *id, *text;
@@
-396,8
+397,8
@@
static DBusHandlerResult api_bus_message_filter(DBusConnection *connection, DBus
if (!(reply = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Activator", "ActivationFailure")))
goto oom;
if (!(reply = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Activator", "ActivationFailure")))
goto oom;
- id = error_to_dbus(r);
- text =
strerror(-
r);
+ id = error
.name ? error.name : error
_to_dbus(r);
+ text =
bus_error(&error,
r);
if (!dbus_message_set_destination(reply, DBUS_SERVICE_DBUS) ||
!dbus_message_append_args(reply,
if (!dbus_message_set_destination(reply, DBUS_SERVICE_DBUS) ||
!dbus_message_append_args(reply,
@@
-1324,13
+1325,13
@@
static const char *error_to_dbus(int error) {
return DBUS_ERROR_FAILED;
}
return DBUS_ERROR_FAILED;
}
-DBusHandlerResult bus_send_error_reply(Manager *m, DBusConnection *c, DBusMessage *message, DBusError *b
us_
error, int error) {
+DBusHandlerResult bus_send_error_reply(Manager *m, DBusConnection *c, DBusMessage *message, DBusError *berror, int error) {
DBusMessage *reply = NULL;
const char *name, *text;
DBusMessage *reply = NULL;
const char *name, *text;
- if (b
us_error && dbus_error_is_set(bus_
error)) {
- name = b
us_
error->name;
- text = b
us_
error->message;
+ if (b
error && dbus_error_is_set(b
error)) {
+ name = berror->name;
+ text = berror->message;
} else {
name = error_to_dbus(error);
text = strerror(-error);
} else {
name = error_to_dbus(error);
text = strerror(-error);
@@
-1344,8
+1345,8
@@
DBusHandlerResult bus_send_error_reply(Manager *m, DBusConnection *c, DBusMessag
dbus_message_unref(reply);
dbus_message_unref(reply);
- if (b
us_
error)
- dbus_error_free(b
us_
error);
+ if (berror)
+ dbus_error_free(berror);
return DBUS_HANDLER_RESULT_HANDLED;
return DBUS_HANDLER_RESULT_HANDLED;
@@
-1353,8
+1354,8
@@
oom:
if (reply)
dbus_message_unref(reply);
if (reply)
dbus_message_unref(reply);
- if (b
us_
error)
- dbus_error_free(b
us_
error);
+ if (berror)
+ dbus_error_free(berror);
return DBUS_HANDLER_RESULT_NEED_MEMORY;
}
return DBUS_HANDLER_RESULT_NEED_MEMORY;
}