From: "Gustavo F. Padovan" <padovan@profusion.mobi>
To: Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH 1/9] Create __btd_error_invalid_args()
Date: Tue, 9 Nov 2010 22:51:49 -0200 [thread overview]
Message-ID: <20101110005149.GA22606@vigoh> (raw)
In-Reply-To: <AANLkTimnfiUYD0b=bMLN=A218=zwUAWkZ7aWM9GBxoKr@mail.gmail.com>
Hi Jose,
* Jose Antonio Santos Cadenas <santoscadenas@gmail.com> [2010-11-09 09:20:33 +0100]:
> Hi Gustavo,
>
> 2010/11/8 Gustavo F. Padovan <padovan@profusion.mobi>:
> > DBus error handling in BlueZ is a mess. This is the first patch to unify
> > all DBus error handling like in ConnMan and oFono. This unifies all
> > .InvalidArguments errors.
> > ---
> > attrib/client.c | 20 +++++----------
> > audio/gateway.c | 8 +----
> > audio/headset.c | 18 ++++---------
> > audio/media.c | 9 ++----
> > audio/telephony-dummy.c | 25 ++++++++------------
> > audio/telephony-maemo5.c | 11 ++------
> > audio/telephony-maemo6.c | 11 ++------
> > audio/transport.c | 14 +++--------
> > health/hdp.c | 58 ++++++++++++----------------------------------
> > network/server.c | 7 -----
> > plugins/service.c | 8 +-----
> > serial/port.c | 8 ------
> > serial/proxy.c | 19 ++++----------
> > src/adapter.c | 52 ++++++++++++++++++-----------------------
> > src/device.c | 22 ++++++-----------
> > src/error.c | 7 +++++
> > src/error.h | 2 +
> > src/manager.c | 7 -----
> > 18 files changed, 100 insertions(+), 206 deletions(-)
> >
> > diff --git a/attrib/client.c b/attrib/client.c
> > index 1f2c217..cd6e401 100644
> > --- a/attrib/client.c
> > +++ b/attrib/client.c
> > @@ -190,12 +190,6 @@ static int watcher_cmp(gconstpointer a, gconstpointer b)
> > return g_strcmp0(watcher->path, match->path);
> > }
> >
> > -static inline DBusMessage *invalid_args(DBusMessage *msg)
> > -{
> > - return g_dbus_create_error(msg, ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid arguments in method call");
> > -}
> > -
> > static inline DBusMessage *not_authorized(DBusMessage *msg)
> > {
> > return g_dbus_create_error(msg, ERROR_INTERFACE ".NotAuthorized",
> > @@ -465,7 +459,7 @@ static DBusMessage *register_watcher(DBusConnection *conn,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > if (l2cap_connect(prim->gatt, &gerr, TRUE) < 0) {
> > DBusMessage *reply;
> > @@ -499,7 +493,7 @@ static DBusMessage *unregister_watcher(DBusConnection *conn,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > match = g_new0(struct watcher, 1);
> > match->name = g_strdup(sender);
> > @@ -537,7 +531,7 @@ static DBusMessage *set_value(DBusConnection *conn, DBusMessage *msg,
> >
> > if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_ARRAY ||
> > dbus_message_iter_get_element_type(iter) != DBUS_TYPE_BYTE)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > dbus_message_iter_recurse(iter, &sub);
> >
> > @@ -586,23 +580,23 @@ static DBusMessage *set_property(DBusConnection *conn,
> > const char *property;
> >
> > if (!dbus_message_iter_init(msg, &iter))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > dbus_message_iter_get_basic(&iter, &property);
> > dbus_message_iter_next(&iter);
> >
> > if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > dbus_message_iter_recurse(&iter, &sub);
> >
> > if (g_str_equal("Value", property))
> > return set_value(conn, msg, &sub, chr);
> >
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> > }
> >
> > static GDBusMethodTable char_methods[] = {
> > diff --git a/audio/gateway.c b/audio/gateway.c
> > index 07ebdd4..ab7d310 100644
> > --- a/audio/gateway.c
> > +++ b/audio/gateway.c
> > @@ -494,9 +494,7 @@ static DBusMessage *register_agent(DBusConnection *conn,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path,
> > DBUS_TYPE_INVALID))
> > - return g_dbus_create_error(msg,
> > - ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid argument");
> > + return __btd_error_invalid_args(msg);
> >
> > name = dbus_message_get_sender(msg);
> > agent = g_new0(struct hf_agent, 1);
> > @@ -529,9 +527,7 @@ static DBusMessage *unregister_agent(DBusConnection *conn,
> > if (!dbus_message_get_args(msg, NULL,
> > DBUS_TYPE_OBJECT_PATH, &path,
> > DBUS_TYPE_INVALID))
> > - return g_dbus_create_error(msg,
> > - ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid argument");
> > + return __btd_error_invalid_args(msg);
> >
> > if (strcmp(gw->agent->path, path) != 0)
> > return g_dbus_create_error(msg,
> > diff --git a/audio/headset.c b/audio/headset.c
> > index 0763585..2cca5ca 100644
> > --- a/audio/headset.c
> > +++ b/audio/headset.c
> > @@ -180,12 +180,6 @@ struct event {
> >
> > static GSList *headset_callbacks = NULL;
> >
> > -static inline DBusMessage *invalid_args(DBusMessage *msg)
> > -{
> > - return g_dbus_create_error(msg, ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid arguments in method call");
> > -}
> > -
> > static DBusHandlerResult error_not_supported(DBusConnection *conn,
> > DBusMessage *msg)
> > {
> > @@ -2026,35 +2020,35 @@ static DBusMessage *hs_set_property(DBusConnection *conn,
> > uint16_t gain;
> >
> > if (!dbus_message_iter_init(msg, &iter))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > dbus_message_iter_get_basic(&iter, &property);
> > dbus_message_iter_next(&iter);
> >
> > if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> > dbus_message_iter_recurse(&iter, &sub);
> >
> > if (g_str_equal("SpeakerGain", property)) {
> > if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_UINT16)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > dbus_message_iter_get_basic(&sub, &gain);
> > return hs_set_gain(conn, msg, data, gain,
> > HEADSET_GAIN_SPEAKER);
> > } else if (g_str_equal("MicrophoneGain", property)) {
> > if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_UINT16)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > dbus_message_iter_get_basic(&sub, &gain);
> > return hs_set_gain(conn, msg, data, gain,
> > HEADSET_GAIN_MICROPHONE);
> > }
> >
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> > }
> > static GDBusMethodTable headset_methods[] = {
> > { "Connect", "", "", hs_connect,
> > diff --git a/audio/media.c b/audio/media.c
> > index b6c90f9..862cee6 100644
> > --- a/audio/media.c
> > +++ b/audio/media.c
> > @@ -323,18 +323,15 @@ static DBusMessage *register_endpoint(DBusConnection *conn, DBusMessage *msg,
> >
> > dbus_message_iter_recurse(&args, &props);
> > if (dbus_message_iter_get_arg_type(&props) != DBUS_TYPE_DICT_ENTRY)
> > - return g_dbus_create_error(msg, ERROR_INTERFACE
> > - ".Failed", "Invalid argument");
> > + return __btd_error_invalid_args(msg);
> >
> > if (parse_properties(&props, &uuid, &delay_reporting, &codec,
> > &capabilities, &size) || uuid == NULL)
> > - return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
> > - "Invalid argument");
> > + return __btd_error_invalid_args(msg);
> >
> > if (media_endpoint_create(adapter, sender, path, uuid, delay_reporting,
> > codec, capabilities, size) == FALSE)
> > - return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
> > - "Invalid argument");
> > + return __btd_error_invalid_args(msg);
> >
> > return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
> > }
> > diff --git a/audio/telephony-dummy.c b/audio/telephony-dummy.c
> > index 06cb798..b56b6e7 100644
> > --- a/audio/telephony-dummy.c
> > +++ b/audio/telephony-dummy.c
> > @@ -35,6 +35,7 @@
> >
> > #include "log.h"
> > #include "telephony.h"
> > +#include "error.h"
> >
> > #define TELEPHONY_DUMMY_IFACE "org.bluez.TelephonyTest"
> > #define TELEPHONY_DUMMY_PATH "/org/bluez/test"
> > @@ -69,12 +70,6 @@ static struct indicator dummy_indicators[] =
> > { NULL }
> > };
> >
> > -static inline DBusMessage *invalid_args(DBusMessage *msg)
> > -{
> > - return g_dbus_create_error(msg, "org.bluez.Error.InvalidArguments",
> > - "Invalid arguments in method call");
> > -}
> > -
> > void telephony_device_connected(void *telephony_device)
> > {
> > DBG("telephony-dummy: device %p connected", telephony_device);
> > @@ -236,7 +231,7 @@ static DBusMessage *outgoing_call(DBusConnection *conn, DBusMessage *msg,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &number,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > DBG("telephony-dummy: outgoing call to %s", number);
> >
> > @@ -261,7 +256,7 @@ static DBusMessage *incoming_call(DBusConnection *conn, DBusMessage *msg,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &number,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > DBG("telephony-dummy: incoming call to %s", number);
> >
> > @@ -307,10 +302,10 @@ static DBusMessage *signal_strength(DBusConnection *conn, DBusMessage *msg,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_UINT32, &strength,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > if (strength > 5)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > telephony_update_indicator(dummy_indicators, "signal", strength);
> >
> > @@ -326,10 +321,10 @@ static DBusMessage *battery_level(DBusConnection *conn, DBusMessage *msg,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_UINT32, &level,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > if (level > 5)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > telephony_update_indicator(dummy_indicators, "battchg", level);
> >
> > @@ -346,7 +341,7 @@ static DBusMessage *roaming_status(DBusConnection *conn, DBusMessage *msg,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_BOOLEAN, &roaming,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > val = roaming ? EV_ROAM_ACTIVE : EV_ROAM_INACTIVE;
> >
> > @@ -365,7 +360,7 @@ static DBusMessage *registration_status(DBusConnection *conn, DBusMessage *msg,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_BOOLEAN, ®istration,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > val = registration ? EV_SERVICE_PRESENT : EV_SERVICE_NONE;
> >
> > @@ -384,7 +379,7 @@ static DBusMessage *set_subscriber_number(DBusConnection *conn,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &number,
> > DBUS_TYPE_INVALID))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > g_free(subscriber_number);
> > subscriber_number = g_strdup(number);
> > diff --git a/audio/telephony-maemo5.c b/audio/telephony-maemo5.c
> > index 4d0134c..0f9819c 100644
> > --- a/audio/telephony-maemo5.c
> > +++ b/audio/telephony-maemo5.c
> > @@ -38,6 +38,7 @@
> >
> > #include "log.h"
> > #include "telephony.h"
> > +#include "error.h"
> >
> > /* SSC D-Bus definitions */
> > #define SSC_DBUS_NAME "com.nokia.phone.SSC"
> > @@ -1880,12 +1881,6 @@ static void csd_init(void)
> > }
> > }
> >
> > -static inline DBusMessage *invalid_args(DBusMessage *msg)
> > -{
> > - return g_dbus_create_error(msg,"org.bluez.Error.InvalidArguments",
> > - "Invalid arguments in method call");
> > -}
> > -
> > static uint32_t get_callflag(const char *callerid_setting)
> > {
> > if (callerid_setting != NULL) {
> > @@ -1950,7 +1945,7 @@ static DBusMessage *set_callerid(DBusConnection *conn, DBusMessage *msg,
> > if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING,
> > &callerid_setting,
> > DBUS_TYPE_INVALID) == FALSE)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > if (g_str_equal(callerid_setting, "allowed") ||
> > g_str_equal(callerid_setting, "restricted") ||
> > @@ -1964,7 +1959,7 @@ static DBusMessage *set_callerid(DBusConnection *conn, DBusMessage *msg,
> >
> > error("telephony-maemo: invalid argument %s for method call"
> > " SetCallerId", callerid_setting);
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> > }
> >
> > static GDBusMethodTable telephony_maemo_methods[] = {
> > diff --git a/audio/telephony-maemo6.c b/audio/telephony-maemo6.c
> > index 72c8e36..4663b4d 100644
> > --- a/audio/telephony-maemo6.c
> > +++ b/audio/telephony-maemo6.c
> > @@ -38,6 +38,7 @@
> >
> > #include "log.h"
> > #include "telephony.h"
> > +#include "error.h"
> >
> > /* SSC D-Bus definitions */
> > #define SSC_DBUS_NAME "com.nokia.phone.SSC"
> > @@ -1760,12 +1761,6 @@ static void csd_init(void)
> > }
> > }
> >
> > -static inline DBusMessage *invalid_args(DBusMessage *msg)
> > -{
> > - return g_dbus_create_error(msg,"org.bluez.Error.InvalidArguments",
> > - "Invalid arguments in method call");
> > -}
> > -
> > static uint32_t get_callflag(const char *callerid_setting)
> > {
> > if (callerid_setting != NULL) {
> > @@ -1830,7 +1825,7 @@ static DBusMessage *set_callerid(DBusConnection *conn, DBusMessage *msg,
> > if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING,
> > &callerid_setting,
> > DBUS_TYPE_INVALID) == FALSE)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > if (g_str_equal(callerid_setting, "allowed") ||
> > g_str_equal(callerid_setting, "restricted") ||
> > @@ -1844,7 +1839,7 @@ static DBusMessage *set_callerid(DBusConnection *conn, DBusMessage *msg,
> >
> > error("telephony-maemo6: invalid argument %s for method call"
> > " SetCallerId", callerid_setting);
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> > }
> >
> > static DBusMessage *clear_lastnumber(DBusConnection *conn, DBusMessage *msg,
> > diff --git a/audio/transport.c b/audio/transport.c
> > index eda46e1..0c865f7 100644
> > --- a/audio/transport.c
> > +++ b/audio/transport.c
> > @@ -93,12 +93,6 @@ struct media_transport {
> > DBusMessageIter *value);
> > };
> >
> > -static inline DBusMessage *invalid_args(DBusMessage *msg)
> > -{
> > - return g_dbus_create_error(msg, ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid arguments in method call");
> > -}
> > -
> > static inline DBusMessage *error_failed(DBusMessage *msg, const char *desc)
> > {
> > return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed", "%s", desc);
> > @@ -549,16 +543,16 @@ static DBusMessage *set_property(DBusConnection *conn, DBusMessage *msg,
> > int err;
> >
> > if (!dbus_message_iter_init(msg, &iter))
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> >
> > dbus_message_iter_get_basic(&iter, &property);
> > dbus_message_iter_next(&iter);
> >
> > if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> > dbus_message_iter_recurse(&iter, &value);
> >
> > sender = dbus_message_get_sender(msg);
> > @@ -577,7 +571,7 @@ static DBusMessage *set_property(DBusConnection *conn, DBusMessage *msg,
> >
> > if (err < 0) {
> > if (err == -EINVAL)
> > - return invalid_args(msg);
> > + return __btd_error_invalid_args(msg);
> > return error_failed(msg, strerror(-err));
> > }
> >
> > diff --git a/health/hdp.c b/health/hdp.c
> > index 1eba8e1..6c1fd98 100644
> > --- a/health/hdp.c
> > +++ b/health/hdp.c
> > @@ -321,15 +321,8 @@ static DBusMessage *manager_create_application(DBusConnection *conn,
> >
> > dbus_message_iter_init(msg, &iter);
> > app = hdp_get_app_config(&iter, &err);
> > - if (err) {
> > - DBusMessage *reply;
> > -
> > - reply = g_dbus_create_error(msg,
> > - ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid arguments: %s", err->message);
> > - g_error_free(err);
> > - return reply;
> > - }
> > + if (err)
> > + return __btd_error_invalid_args(msg);
>
>
> You are leaking memory here, err should be freed before return. Also
> the message that we add to the error is for clarify the user the kind
> of error, it will be great to keep it.
Sure.
>
> >
> > name = dbus_message_get_sender(msg);
> > if (!name) {
> > @@ -368,11 +361,8 @@ static DBusMessage *manager_destroy_application(DBusConnection *conn,
> > GSList *l;
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path,
> > - DBUS_TYPE_INVALID)){
> > - return g_dbus_create_error(msg,
> > - ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid arguments in method call");
> > - }
> > + DBUS_TYPE_INVALID))
> > + return __btd_error_invalid_args(msg);
> >
> > l = g_slist_find_custom(applications, path, cmp_app);
> >
> > @@ -1801,18 +1791,13 @@ static DBusMessage *device_create_channel(DBusConnection *conn,
> >
> > if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &app_path,
> > DBUS_TYPE_STRING, &conf,
> > - DBUS_TYPE_INVALID)) {
> > - return g_dbus_create_error(msg,
> > - ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid arguments in method call");
> > - }
> > + DBUS_TYPE_INVALID))
> > + return __btd_error_invalid_args(msg);
> >
> > l = g_slist_find_custom(applications, app_path, cmp_app);
> > if (!l)
> > - return g_dbus_create_error(msg,
> > - ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid arguments in method call, "
> > - "no such application");
> > + return __btd_error_invalid_args(msg);
> > +
> > app = l->data;
> >
> > if (g_ascii_strcasecmp("Reliable", conf) == 0)
> > @@ -1822,25 +1807,16 @@ static DBusMessage *device_create_channel(DBusConnection *conn,
> > else if (g_ascii_strcasecmp("Any", conf) == 0)
> > config = HDP_NO_PREFERENCE_DC;
> > else
> > - return g_dbus_create_error(msg,
> > - ERROR_INTERFACE ".InvalidArguments",
> > - "Invalid arguments in method call");
> > + return __btd_error_invalid_args(msg);
> >
> > if (app->role == HDP_SINK && config != HDP_NO_PREFERENCE_DC)
> > - return g_dbus_create_error(msg,
> > - ERROR_INTERFACE ".InvalidArguments",
> > - "Configuration not valid for sinks");
> > + return __btd_error_invalid_args(msg);
>
> Also here the message we tried to clarify the kind of "Invalid
> Arguments" error with a different message.
I'm not really caring about those messages, I'm fine on removing all of
them. The idea is to just have a __btd_error_failed_str() to report
string messages in some more generic errors.
next prev parent reply other threads:[~2010-11-10 0:51 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-08 6:29 [PATCH 0/9] Fixing DBus error system in BlueZ Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 1/9] Create __btd_error_invalid_args() Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 2/9] Add __btd_error_already_exists() Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 3/9] Add __btd_error_not_supported() Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 4/9] Add __btd_error_not_connected() Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 5/9] Add __btd_error_in_progress() Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 6/9] Add __btd_error_not_available() Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 7/9] Add __btd_error_busy() Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 8/9] Add __btd_error_does_not_exist() Gustavo F. Padovan
2010-11-08 6:29 ` [PATCH 9/9] Add __btd_error_not_authorized() Gustavo F. Padovan
2010-11-09 8:22 ` [PATCH 2/9] Add __btd_error_already_exists() Jose Antonio Santos Cadenas
2010-11-09 17:13 ` Gustavo F. Padovan
2010-11-09 20:13 ` Jose Antonio Santos Cadenas
2010-11-09 20:30 ` Gustavo F. Padovan
2010-11-09 20:35 ` Jose Antonio Santos Cadenas
2010-11-09 8:20 ` [PATCH 1/9] Create __btd_error_invalid_args() Jose Antonio Santos Cadenas
2010-11-10 0:51 ` Gustavo F. Padovan [this message]
2010-11-08 12:33 ` [PATCH 0/9] Fixing DBus error system in BlueZ Johan Hedberg
2010-11-08 17:31 ` Gustavo F. Padovan
2010-11-10 5:23 ` Marcel Holtmann
2010-11-10 15:38 ` Gustavo F. Padovan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101110005149.GA22606@vigoh \
--to=padovan@profusion.mobi \
--cc=linux-bluetooth@vger.kernel.org \
--cc=santoscadenas@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.