Merge pull request #12733 from keszybz/sd-bus-error-reporting
Bus error reporting improvements
This commit is contained in:
commit
aafec74d04
|
@ -975,7 +975,8 @@ static int introspect(int argc, char **argv, void *userdata) {
|
|||
|
||||
r = sd_bus_call_method(bus, argv[1], argv[2], "org.freedesktop.DBus.Properties", "GetAll", &error, &reply, "s", m->interface);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "%s", bus_error_message(&error, r));
|
||||
return log_error_errno(r, "Failed to get all properties on interface %s: %s",
|
||||
m->interface, bus_error_message(&error, r));
|
||||
|
||||
r = sd_bus_message_enter_container(reply, 'a', "{sv}");
|
||||
if (r < 0)
|
||||
|
@ -1181,7 +1182,12 @@ static int monitor(int argc, char **argv, int (*dump)(sd_bus_message *m, FILE *f
|
|||
return r;
|
||||
|
||||
/* upgrade connection; it's not used for anything else after this call */
|
||||
r = sd_bus_message_new_method_call(bus, &message, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus.Monitoring", "BecomeMonitor");
|
||||
r = sd_bus_message_new_method_call(bus,
|
||||
&message,
|
||||
"org.freedesktop.DBus",
|
||||
"/org/freedesktop/DBus",
|
||||
"org.freedesktop.DBus.Monitoring",
|
||||
"BecomeMonitor");
|
||||
if (r < 0)
|
||||
return bus_log_create_error(r);
|
||||
|
||||
|
@ -1229,7 +1235,8 @@ static int monitor(int argc, char **argv, int (*dump)(sd_bus_message *m, FILE *f
|
|||
|
||||
r = sd_bus_call(bus, message, arg_timeout, &error, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "%s", bus_error_message(&error, r));
|
||||
return log_error_errno(r, "Call to org.freedesktop.DBus.Monitoring.BecomeMonitor failed: %s",
|
||||
bus_error_message(&error, r));
|
||||
|
||||
r = sd_bus_get_unique_name(bus, &unique_name);
|
||||
if (r < 0)
|
||||
|
@ -1987,7 +1994,7 @@ static int call(int argc, char **argv, void *userdata) {
|
|||
|
||||
r = sd_bus_call(bus, m, arg_timeout, &error, &reply);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "%s", bus_error_message(&error, r));
|
||||
return log_error_errno(r, "Call failed: %s", bus_error_message(&error, r));
|
||||
|
||||
r = sd_bus_message_is_empty(reply);
|
||||
if (r < 0)
|
||||
|
@ -2089,7 +2096,9 @@ static int get_property(int argc, char **argv, void *userdata) {
|
|||
|
||||
r = sd_bus_call_method(bus, argv[1], argv[2], "org.freedesktop.DBus.Properties", "Get", &error, &reply, "ss", argv[3], *i);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "%s", bus_error_message(&error, r));
|
||||
return log_error_errno(r, "Failed to get property %s on interface %s: %s",
|
||||
*i, argv[3],
|
||||
bus_error_message(&error, r));
|
||||
|
||||
r = sd_bus_message_peek_type(reply, &type, &contents);
|
||||
if (r < 0)
|
||||
|
@ -2173,7 +2182,9 @@ static int set_property(int argc, char **argv, void *userdata) {
|
|||
|
||||
r = sd_bus_call(bus, m, arg_timeout, &error, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "%s", bus_error_message(&error, r));
|
||||
return log_error_errno(r, "Failed to set property %s on interface %s: %s",
|
||||
argv[4], argv[3],
|
||||
bus_error_message(&error, r));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1437,16 +1437,22 @@ int bus_process_object(sd_bus *bus, sd_bus_message *m) {
|
|||
return 0;
|
||||
|
||||
if (sd_bus_message_is_method_call(m, "org.freedesktop.DBus.Properties", "Get") ||
|
||||
sd_bus_message_is_method_call(m, "org.freedesktop.DBus.Properties", "Set"))
|
||||
sd_bus_message_is_method_call(m, "org.freedesktop.DBus.Properties", "Set")) {
|
||||
const char *interface = NULL, *property = NULL;
|
||||
|
||||
(void) sd_bus_message_rewind(m, true);
|
||||
(void) sd_bus_message_read_basic(m, 's', &interface);
|
||||
(void) sd_bus_message_read_basic(m, 's', &property);
|
||||
|
||||
r = sd_bus_reply_method_errorf(
|
||||
m,
|
||||
SD_BUS_ERROR_UNKNOWN_PROPERTY,
|
||||
"Unknown property or interface.");
|
||||
else
|
||||
"Unknown interface %s or property %s.", strnull(interface), strnull(property));
|
||||
} else
|
||||
r = sd_bus_reply_method_errorf(
|
||||
m,
|
||||
SD_BUS_ERROR_UNKNOWN_METHOD,
|
||||
"Unknown method '%s' or interface '%s'.", m->member, m->interface);
|
||||
"Unknown method %s or interface %s.", m->member, m->interface);
|
||||
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
|
|
@ -222,9 +222,11 @@ static int acquire_link_bitrates(sd_bus *bus, LinkInfo *link) {
|
|||
"org.freedesktop.network1.Link",
|
||||
"BitRates");
|
||||
if (r < 0) {
|
||||
if (sd_bus_error_has_name(&error, BUS_ERROR_SPEED_METER_INACTIVE))
|
||||
return 0;
|
||||
return log_error_errno(r, "%s", bus_error_message(&error, r));
|
||||
bool quiet = sd_bus_error_has_name(&error, SD_BUS_ERROR_UNKNOWN_PROPERTY) ||
|
||||
sd_bus_error_has_name(&error, BUS_ERROR_SPEED_METER_INACTIVE);
|
||||
|
||||
return log_full_errno(quiet ? LOG_DEBUG : LOG_WARNING,
|
||||
r, "Failed to query link bit rates: %s", bus_error_message(&error, r));
|
||||
}
|
||||
|
||||
r = sd_bus_message_enter_container(reply, 'v', "(dd)");
|
||||
|
|
Loading…
Reference in a new issue