src/modules/bluetooth/bluetooth-util.c | 11 ++++------- src/pulse/def.h | 4 ++-- src/pulsecore/dbus-util.c | 14 ++++++++++++++ src/pulsecore/dbus-util.h | 8 ++++++++ 4 files changed, 28 insertions(+), 9 deletions(-)
New commits: commit 717701aa7135d0c1bc60e74a70e756d7bc0ef5ef Author: Tanu Kaskinen <[email protected]> Date: Tue Dec 13 21:57:03 2011 +0200 bluetooth: When receiving D-Bus errors, print also the error message. diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c index c5befe3..15c544e 100644 --- a/src/modules/bluetooth/bluetooth-util.c +++ b/src/modules/bluetooth/bluetooth-util.c @@ -438,10 +438,7 @@ static void get_properties_reply(DBusPendingCall *pending, void *userdata) { } if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) { - - if (!dbus_message_is_error(r, DBUS_ERROR_UNKNOWN_METHOD)) - pa_log("Error from GetProperties reply: %s", dbus_message_get_error_name(r)); - + pa_log("%s.GetProperties() failed: %s: %s", dbus_message_get_interface(p->message), dbus_message_get_error_name(r), pa_dbus_get_error_message(r)); goto finish; } @@ -548,7 +545,7 @@ static void register_endpoint_reply(DBusPendingCall *pending, void *userdata) { } if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) { - pa_log("Error from RegisterEndpoint reply: %s", dbus_message_get_error_name(r)); + pa_log("org.bluez.Media.RegisterEndpoint() failed: %s: %s", dbus_message_get_error_name(r), pa_dbus_get_error_message(r)); goto finish; } @@ -584,7 +581,7 @@ static void list_devices_reply(DBusPendingCall *pending, void *userdata) { } if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) { - pa_log("Error from ListDevices reply: %s", dbus_message_get_error_name(r)); + pa_log("org.bluez.Adapter.ListDevices() failed: %s: %s", dbus_message_get_error_name(r), pa_dbus_get_error_message(r)); goto finish; } @@ -689,7 +686,7 @@ static void list_adapters_reply(DBusPendingCall *pending, void *userdata) { } if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) { - pa_log("Error from ListAdapters reply: %s", dbus_message_get_error_name(r)); + pa_log("org.bluez.Manager.ListAdapters() failed: %s: %s", dbus_message_get_error_name(r), pa_dbus_get_error_message(r)); goto finish; } commit bec34c428cca88e6afed134c070b6f1916d394ab Author: Tanu Kaskinen <[email protected]> Date: Tue Dec 13 21:57:02 2011 +0200 dbus: New helper function: pa_dbus_get_error_message(). diff --git a/src/pulsecore/dbus-util.c b/src/pulsecore/dbus-util.c index b79b752..3daf90f 100644 --- a/src/pulsecore/dbus-util.c +++ b/src/pulsecore/dbus-util.c @@ -452,6 +452,20 @@ void pa_dbus_free_pending_list(pa_dbus_pending **p) { } } +const char *pa_dbus_get_error_message(DBusMessage *m) { + const char *message; + + pa_assert(m); + pa_assert(dbus_message_get_type(m) == DBUS_MESSAGE_TYPE_ERROR); + + if (dbus_message_get_signature(m)[0] != 's') + return "<no explanation>"; + + pa_assert_se(dbus_message_get_args(m, NULL, DBUS_TYPE_STRING, &message, DBUS_TYPE_INVALID)); + + return message; +} + void pa_dbus_send_error(DBusConnection *c, DBusMessage *in_reply_to, const char *name, const char *format, ...) { va_list ap; char *message; diff --git a/src/pulsecore/dbus-util.h b/src/pulsecore/dbus-util.h index 347f9f3..e3d6e4f 100644 --- a/src/pulsecore/dbus-util.h +++ b/src/pulsecore/dbus-util.h @@ -67,6 +67,14 @@ void pa_dbus_sync_pending_list(pa_dbus_pending **p); /* Free up a list of pa_dbus_pending_call objects */ void pa_dbus_free_pending_list(pa_dbus_pending **p); +/* When receiving a DBusMessage with type DBUS_MESSAGE_TYPE_ERROR, the + * DBusMessage may or may not contain an error message (a human-readable + * explanation of what went wrong). Extracting the error message from the + * DBusMessage object is a bit tedious, so here's a helper function that does + * that. If the DBusMessage doesn't contain any error message, + * "<no explanation>" is returned. */ +const char *pa_dbus_get_error_message(DBusMessage *m); + /* Sends an error message as the reply to the given message. */ void pa_dbus_send_error( DBusConnection *c, commit 910bc7c2b4c56f0a8d0c1ed2f9ab98bb8f51d579 Author: Peter Meerwald <[email protected]> Date: Mon Dec 12 10:59:46 2011 +0100 pulse: Turn the anonymous error code enum into pa_error_code_t. The purpose is to make it possible to link to the enumeration in doxygen. diff --git a/src/pulse/def.h b/src/pulse/def.h index 98d3651..7ca0c4b 100644 --- a/src/pulse/def.h +++ b/src/pulse/def.h @@ -399,7 +399,7 @@ typedef struct pa_buffer_attr { } pa_buffer_attr; /** Error values as used by pa_context_errno(). Use pa_strerror() to convert these values to human readable strings */ -enum { +typedef enum pa_error_code { PA_OK = 0, /**< No error */ PA_ERR_ACCESS, /**< Access failure */ PA_ERR_COMMAND, /**< Unknown command */ @@ -428,7 +428,7 @@ enum { PA_ERR_IO, /**< An IO error happened. \since 0.9.16 */ PA_ERR_BUSY, /**< Device or resource busy. \since 0.9.17 */ PA_ERR_MAX /**< Not really an error but the first invalid error code */ -}; +} pa_error_code_t; /** \cond fulldocs */ #define PA_OK PA_OK _______________________________________________ pulseaudio-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits
