* [PATCH 00/10] More btd_error_* patches
@ 2010-12-13 21:32 Gustavo F. Padovan
2010-12-13 21:32 ` [PATCH 01/10] Add btd_error_no_such_adapter() Gustavo F. Padovan
2010-12-14 8:56 ` [PATCH 00/10] More btd_error_* patches Johan Hedberg
0 siblings, 2 replies; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:32 UTC (permalink / raw)
To: linux-bluetooth
Hi,
This patch set adds a new error function btd_error_failed(), which has a str
parameter to enable a more accurate error report in the case the usual
btd_error_* does not fit.
After this patch set there will 10 occurrences of g_dbus_create_error() inside
bluez code (not counting health/ here)
Please review!
Gustavo F. Padovan (10):
Add btd_error_no_such_adapter()
src: use btd_error_invalid_args()
Add btd_error_failed()
plugins: use btd_error_failed()
attrib: use btd_error_failed()
network: use btd_error_failed()
input: use btd_error_failed()
audio: use btd_error_failed()
serial: use btd_error_failed()
src: use btd_error_failed()
attrib/client.c | 10 +-------
audio/control.c | 6 +---
audio/device.c | 14 ++++--------
audio/gateway.c | 11 ++++-----
audio/headset.c | 18 ++++------------
audio/sink.c | 9 ++-----
audio/source.c | 9 ++-----
audio/transport.c | 7 +-----
input/device.c | 31 +++++++----------------------
network/connection.c | 30 +--------------------------
network/server.c | 13 ++---------
plugins/service.c | 22 +++-----------------
serial/port.c | 20 ++++++++----------
serial/proxy.c | 8 +-----
src/adapter.c | 37 ++++++++++++-----------------------
src/device.c | 52 ++++++++++++-------------------------------------
src/error.c | 12 +++++++++++
src/error.h | 2 +
src/manager.c | 13 ++---------
19 files changed, 97 insertions(+), 227 deletions(-)
--
1.7.3.2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 01/10] Add btd_error_no_such_adapter()
2010-12-13 21:32 [PATCH 00/10] More btd_error_* patches Gustavo F. Padovan
@ 2010-12-13 21:32 ` Gustavo F. Padovan
2010-12-13 21:32 ` [PATCH 02/10] src: use btd_error_invalid_args() Gustavo F. Padovan
2010-12-14 8:56 ` [PATCH 00/10] More btd_error_* patches Johan Hedberg
1 sibling, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:32 UTC (permalink / raw)
To: linux-bluetooth
---
src/device.c | 6 ------
src/error.c | 6 ++++++
src/error.h | 1 +
src/manager.c | 13 +++----------
4 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/src/device.c b/src/device.c
index 91b9d23..7ceac8b 100644
--- a/src/device.c
+++ b/src/device.c
@@ -171,12 +171,6 @@ static DBusHandlerResult error_failed_errno(DBusConnection *conn,
return error_failed(conn, msg, desc);
}
-static inline DBusMessage *no_such_adapter(DBusMessage *msg)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".NoSuchAdapter",
- "No such adapter");
-}
-
static void browse_request_free(struct browse_req *req)
{
if (req->listener_id)
diff --git a/src/error.c b/src/error.c
index e1f0598..013de96 100644
--- a/src/error.c
+++ b/src/error.c
@@ -108,3 +108,9 @@ DBusMessage *btd_error_not_authorized(DBusMessage *msg)
return g_dbus_create_error(msg, ERROR_INTERFACE ".NotAuthorized",
"Operation Not Authorized");
}
+
+DBusMessage *btd_error_no_such_adapter(DBusMessage *msg)
+{
+ return g_dbus_create_error(msg, ERROR_INTERFACE ".NoSuchAdapter",
+ "No such adapter");
+}
diff --git a/src/error.h b/src/error.h
index 9d80fa0..a4e32fe 100644
--- a/src/error.h
+++ b/src/error.h
@@ -40,3 +40,4 @@ DBusMessage *btd_error_not_available(DBusMessage *msg);
DBusMessage *btd_error_in_progress(DBusMessage *msg);
DBusMessage *btd_error_does_not_exist(DBusMessage *msg);
DBusMessage *btd_error_not_authorized(DBusMessage *msg);
+DBusMessage *btd_error_no_such_adapter(DBusMessage *msg);
diff --git a/src/manager.c b/src/manager.c
index ccaa1a2..c8ec7e5 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -59,13 +59,6 @@ const char *manager_get_base_path(void)
return base_path;
}
-static inline DBusMessage *no_such_adapter(DBusMessage *msg)
-{
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".NoSuchAdapter",
- "No such adapter");
-}
-
static DBusMessage *default_adapter(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@@ -75,7 +68,7 @@ static DBusMessage *default_adapter(DBusConnection *conn,
adapter = manager_find_adapter_by_id(default_adapter_id);
if (!adapter)
- return no_such_adapter(msg);
+ return btd_error_no_such_adapter(msg);
reply = dbus_message_new_method_return(msg);
if (!reply)
@@ -108,7 +101,7 @@ static DBusMessage *find_adapter(DBusConnection *conn,
path = adapter_any_get_path();
if (path != NULL)
goto done;
- return no_such_adapter(msg);
+ return btd_error_no_such_adapter(msg);
} else if (!strncmp(pattern, "hci", 3) && strlen(pattern) >= 4) {
dev_id = atoi(pattern + 3);
adapter = manager_find_adapter_by_id(dev_id);
@@ -116,7 +109,7 @@ static DBusMessage *find_adapter(DBusConnection *conn,
adapter = manager_find_adapter_by_address(pattern);
if (!adapter)
- return no_such_adapter(msg);
+ return btd_error_no_such_adapter(msg);
path = adapter_get_path(adapter);
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 02/10] src: use btd_error_invalid_args()
2010-12-13 21:32 ` [PATCH 01/10] Add btd_error_no_such_adapter() Gustavo F. Padovan
@ 2010-12-13 21:32 ` Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 03/10] Add btd_error_failed() Gustavo F. Padovan
0 siblings, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:32 UTC (permalink / raw)
To: linux-bluetooth
---
src/device.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/device.c b/src/device.c
index 7ceac8b..0f4dc0b 100644
--- a/src/device.c
+++ b/src/device.c
@@ -605,7 +605,7 @@ static DBusMessage *discover_services(DBusConnection *conn,
if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &pattern,
DBUS_TYPE_INVALID) == FALSE)
- goto fail;
+ return btd_error_invalid_args(msg);
if (strlen(pattern) == 0) {
err = device_browse(device, conn, msg, NULL, FALSE);
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 03/10] Add btd_error_failed()
2010-12-13 21:32 ` [PATCH 02/10] src: use btd_error_invalid_args() Gustavo F. Padovan
@ 2010-12-13 21:33 ` Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 04/10] plugins: use btd_error_failed() Gustavo F. Padovan
0 siblings, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:33 UTC (permalink / raw)
To: linux-bluetooth
This is a special error type. It has a more general meaning and allows you
to add a string to the error.
---
src/error.c | 6 ++++++
src/error.h | 1 +
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/error.c b/src/error.c
index 013de96..3a78628 100644
--- a/src/error.c
+++ b/src/error.c
@@ -114,3 +114,9 @@ DBusMessage *btd_error_no_such_adapter(DBusMessage *msg)
return g_dbus_create_error(msg, ERROR_INTERFACE ".NoSuchAdapter",
"No such adapter");
}
+
+DBusMessage *btd_error_failed(DBusMessage *msg, const char *str)
+{
+ return g_dbus_create_error(msg, ERROR_INTERFACE
+ ".Failed", "%s", str);
+}
diff --git a/src/error.h b/src/error.h
index a4e32fe..faaef0a 100644
--- a/src/error.h
+++ b/src/error.h
@@ -41,3 +41,4 @@ DBusMessage *btd_error_in_progress(DBusMessage *msg);
DBusMessage *btd_error_does_not_exist(DBusMessage *msg);
DBusMessage *btd_error_not_authorized(DBusMessage *msg);
DBusMessage *btd_error_no_such_adapter(DBusMessage *msg);
+DBusMessage *btd_error_failed(DBusMessage *msg, const char *str);
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 04/10] plugins: use btd_error_failed()
2010-12-13 21:33 ` [PATCH 03/10] Add btd_error_failed() Gustavo F. Padovan
@ 2010-12-13 21:33 ` Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 05/10] attrib: " Gustavo F. Padovan
0 siblings, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:33 UTC (permalink / raw)
To: linux-bluetooth
---
plugins/service.c | 22 ++++------------------
1 files changed, 4 insertions(+), 18 deletions(-)
diff --git a/plugins/service.c b/plugins/service.c
index a442d53..f44aa92 100644
--- a/plugins/service.c
+++ b/plugins/service.c
@@ -337,17 +337,6 @@ static void exit_callback(DBusConnection *conn, void *user_data)
g_free(user_record);
}
-static inline DBusMessage *failed(DBusMessage *msg)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed", "Failed");
-}
-
-static inline DBusMessage *failed_strerror(DBusMessage *msg, int err)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(err));
-}
-
static int add_xml_record(DBusConnection *conn, const char *sender,
struct service_adapter *serv_adapter,
const char *record, dbus_uint32_t *handle)
@@ -412,9 +401,7 @@ static DBusMessage *update_record(DBusConnection *conn, DBusMessage *msg,
if (err < 0) {
sdp_record_free(sdp_record);
error("Failed to update the service record");
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".Failed",
- "%s", strerror(EIO));
+ return btd_error_failed(msg, strerror(-err));
}
return dbus_message_new_method_return(msg);
@@ -449,9 +436,8 @@ static DBusMessage *update_xml_record(DBusConnection *conn,
if (!sdp_record) {
error("Parsing of XML service record failed");
sdp_record_free(sdp_record);
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".Failed",
- "%s", strerror(EIO));
+ return btd_error_failed(msg,
+ "Parsing of XML service record failed");
}
return update_record(conn, msg, serv_adapter, handle, sdp_record);
@@ -494,7 +480,7 @@ static DBusMessage *add_service_record(DBusConnection *conn,
sender = dbus_message_get_sender(msg);
err = add_xml_record(conn, sender, serv_adapter, record, &handle);
if (err < 0)
- return failed_strerror(msg, err);
+ return btd_error_failed(msg, strerror(-err));
reply = dbus_message_new_method_return(msg);
if (!reply)
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 05/10] attrib: use btd_error_failed()
2010-12-13 21:33 ` [PATCH 04/10] plugins: use btd_error_failed() Gustavo F. Padovan
@ 2010-12-13 21:33 ` Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 06/10] network: " Gustavo F. Padovan
0 siblings, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:33 UTC (permalink / raw)
To: linux-bluetooth
---
attrib/client.c | 10 ++--------
1 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/attrib/client.c b/attrib/client.c
index 0805492..8e96af4 100644
--- a/attrib/client.c
+++ b/attrib/client.c
@@ -457,11 +457,8 @@ static DBusMessage *register_watcher(DBusConnection *conn,
return btd_error_invalid_args(msg);
if (l2cap_connect(prim->gatt, &gerr, TRUE) < 0) {
- DBusMessage *reply;
- reply = g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", gerr->message);
+ DBusMessage *reply = btd_error_failed(msg, gerr->message);
g_error_free(gerr);
-
return reply;
}
@@ -533,11 +530,8 @@ static DBusMessage *set_value(DBusConnection *conn, DBusMessage *msg,
dbus_message_iter_get_fixed_array(&sub, &value, &len);
if (l2cap_connect(gatt, &gerr, FALSE) < 0) {
- DBusMessage *reply;
- reply = g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", gerr->message);
+ DBusMessage *reply = btd_error_failed(msg, gerr->message);
g_error_free(gerr);
-
return reply;
}
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 06/10] network: use btd_error_failed()
2010-12-13 21:33 ` [PATCH 05/10] attrib: " Gustavo F. Padovan
@ 2010-12-13 21:33 ` Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 07/10] input: " Gustavo F. Padovan
0 siblings, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:33 UTC (permalink / raw)
To: linux-bluetooth
---
network/connection.c | 30 ++----------------------------
network/server.c | 13 +++----------
2 files changed, 5 insertions(+), 38 deletions(-)
diff --git a/network/connection.c b/network/connection.c
index 89c38d8..09a4f3c 100644
--- a/network/connection.c
+++ b/network/connection.c
@@ -111,32 +111,6 @@ static struct network_conn *find_connection(GSList *list, uint16_t id)
return NULL;
}
-static inline DBusMessage *not_supported(DBusMessage *msg)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Not supported");
-}
-
-static inline DBusMessage *already_connected(DBusMessage *msg)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Device already connected");
-}
-
-static inline DBusMessage *not_permited(DBusMessage *msg)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Operation not permited");
-}
-
-static inline DBusMessage *connection_attempt_failed(DBusMessage *msg,
- const char *err)
-{
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".ConnectionAttemptFailed",
- "%s", err ? err : "Connection attempt failed");
-}
-
static gboolean bnep_watchdog_cb(GIOChannel *chan, GIOCondition cond,
gpointer data)
{
@@ -182,7 +156,7 @@ static void cancel_connection(struct network_conn *nc, const char *err_msg)
}
if (nc->msg && err_msg) {
- reply = connection_attempt_failed(nc->msg, err_msg);
+ reply = btd_error_failed(nc->msg, err_msg);
g_dbus_send_message(connection, reply);
}
@@ -409,7 +383,7 @@ static DBusMessage *connection_connect(DBusConnection *conn,
if (!nc->io) {
DBusMessage *reply;
error("%s", err->message);
- reply = connection_attempt_failed(msg, err->message);
+ reply = btd_error_failed(msg, err->message);
g_error_free(err);
return reply;
}
diff --git a/network/server.c b/network/server.c
index 60e1a81..7c63c3e 100644
--- a/network/server.c
+++ b/network/server.c
@@ -566,13 +566,6 @@ static uint32_t register_server_record(struct network_server *ns)
return record->handle;
}
-
-static inline DBusMessage *failed(DBusMessage *msg, const char *description)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", description);
-}
-
static void server_disconnect(DBusConnection *conn, void *user_data)
{
struct network_server *ns = user_data;
@@ -600,7 +593,7 @@ static DBusMessage *register_server(DBusConnection *conn,
return NULL;
if (g_strcmp0(uuid, "nap"))
- return failed(msg, "Invalid UUID");
+ return btd_error_failed(msg, "Invalid UUID");
if (ns->record_id)
return btd_error_already_exists(msg);
@@ -611,7 +604,7 @@ static DBusMessage *register_server(DBusConnection *conn,
ns->record_id = register_server_record(ns);
if (!ns->record_id)
- return failed(msg, "SDP record registration failed");
+ return btd_error_failed(msg, "SDP record registration failed");
g_free(ns->bridge);
ns->bridge = g_strdup(bridge);
@@ -635,7 +628,7 @@ static DBusMessage *unregister_server(DBusConnection *conn,
return NULL;
if (g_strcmp0(uuid, "nap"))
- return failed(msg, "Invalid UUID");
+ return btd_error_failed(msg, "Invalid UUID");
reply = dbus_message_new_method_return(msg);
if (!reply)
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 07/10] input: use btd_error_failed()
2010-12-13 21:33 ` [PATCH 06/10] network: " Gustavo F. Padovan
@ 2010-12-13 21:33 ` Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 08/10] audio: " Gustavo F. Padovan
0 siblings, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:33 UTC (permalink / raw)
To: linux-bluetooth
---
input/device.c | 31 ++++++++-----------------------
1 files changed, 8 insertions(+), 23 deletions(-)
diff --git a/input/device.c b/input/device.c
index dee943b..0543fe6 100644
--- a/input/device.c
+++ b/input/device.c
@@ -315,14 +315,6 @@ failed:
return FALSE;
}
-static inline DBusMessage *connection_attempt_failed(DBusMessage *msg,
- const char *err)
-{
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".ConnectionAttemptFailed",
- "%s", err ? err : "Connection attempt failed");
-}
-
static void rfcomm_connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
{
struct input_conn *iconn = user_data;
@@ -331,8 +323,7 @@ static void rfcomm_connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
DBusMessage *reply;
if (err) {
- reply = connection_attempt_failed(iconn->pending_connect,
- err->message);
+ reply = btd_error_failed(iconn->pending_connect, err->message);
goto failed;
}
@@ -345,7 +336,7 @@ static void rfcomm_connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
fake->uinput = uinput_create(idev->name);
if (fake->uinput < 0) {
g_io_channel_shutdown(chan, TRUE, NULL);
- reply = connection_attempt_failed(iconn->pending_connect,
+ reply = btd_error_failed(iconn->pending_connect,
strerror(errno));
goto failed;
}
@@ -834,7 +825,7 @@ static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
failed:
error("%s", err_msg);
- reply = connection_attempt_failed(iconn->pending_connect, err_msg);
+ reply = btd_error_failed(iconn->pending_connect, err_msg);
g_dbus_send_message(idev->conn, reply);
if (iconn->ctrl_io)
@@ -859,8 +850,8 @@ static void control_connect_cb(GIOChannel *chan, GError *conn_err,
if (conn_err) {
error("%s", conn_err->message);
- reply = connection_attempt_failed(iconn->pending_connect,
- conn_err->message);
+ reply = btd_error_failed(iconn->pending_connect,
+ conn_err->message);
goto failed;
}
@@ -874,7 +865,7 @@ static void control_connect_cb(GIOChannel *chan, GError *conn_err,
BT_IO_OPT_INVALID);
if (!io) {
error("%s", err->message);
- reply = connection_attempt_failed(iconn->pending_connect,
+ reply = btd_error_failed(iconn->pending_connect,
err->message);
g_error_free(err);
g_io_channel_shutdown(chan, TRUE, NULL);
@@ -960,17 +951,11 @@ static DBusMessage *input_device_connect(DBusConnection *conn,
error("%s", err->message);
dbus_message_unref(iconn->pending_connect);
iconn->pending_connect = NULL;
- reply = connection_attempt_failed(msg, err->message);
+ reply = btd_error_failed(msg, err->message);
g_error_free(err);
return reply;
}
-static DBusMessage *create_errno_message(DBusMessage *msg, int err)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(err));
-}
-
static DBusMessage *input_device_disconnect(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@@ -979,7 +964,7 @@ static DBusMessage *input_device_disconnect(DBusConnection *conn,
err = disconnect(idev, 0);
if (err < 0)
- return create_errno_message(msg, -err);
+ return btd_error_failed(msg, strerror(-err));
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
}
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 08/10] audio: use btd_error_failed()
2010-12-13 21:33 ` [PATCH 07/10] input: " Gustavo F. Padovan
@ 2010-12-13 21:33 ` Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 09/10] serial: " Gustavo F. Padovan
0 siblings, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:33 UTC (permalink / raw)
To: linux-bluetooth
---
audio/control.c | 6 ++----
audio/device.c | 14 +++++---------
audio/gateway.c | 11 +++++------
audio/headset.c | 18 +++++-------------
audio/sink.c | 9 +++------
audio/source.c | 9 +++------
audio/transport.c | 7 +------
7 files changed, 24 insertions(+), 50 deletions(-)
diff --git a/audio/control.c b/audio/control.c
index 98b6682..75c0b51 100644
--- a/audio/control.c
+++ b/audio/control.c
@@ -1021,8 +1021,7 @@ static DBusMessage *volume_up(DBusConnection *conn, DBusMessage *msg,
err = avctp_send_passthrough(control, VOL_UP_OP);
if (err < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
return dbus_message_new_method_return(msg);
}
@@ -1047,8 +1046,7 @@ static DBusMessage *volume_down(DBusConnection *conn, DBusMessage *msg,
err = avctp_send_passthrough(control, VOL_DOWN_OP);
if (err < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
return dbus_message_new_method_return(msg);
}
diff --git a/audio/device.c b/audio/device.c
index fe7aed4..e38e598 100644
--- a/audio/device.c
+++ b/audio/device.c
@@ -271,10 +271,9 @@ static void device_set_state(struct audio_device *dev, audio_state_t new_state)
if (new_state == AUDIO_STATE_CONNECTED)
reply = dbus_message_new_method_return(priv->conn_req);
else
- reply = g_dbus_create_error(priv->conn_req,
- ERROR_INTERFACE
- ".ConnectFailed",
- "Connecting failed");
+ reply = btd_error_failed(priv->conn_req,
+ "Connect Failed");
+
dbus_message_unref(priv->conn_req);
priv->conn_req = NULL;
g_dbus_send_message(dev->conn, reply);
@@ -532,8 +531,7 @@ static DBusMessage *dev_connect(DBusConnection *conn, DBusMessage *msg,
struct avdtp *session = avdtp_get(&dev->src, &dev->dst);
if (!session)
- return g_dbus_create_error(msg, ERROR_INTERFACE
- ".Failed",
+ return btd_error_failed(msg,
"Failed to get AVDTP session");
sink_setup_stream(dev->sink, session);
@@ -543,9 +541,7 @@ static DBusMessage *dev_connect(DBusConnection *conn, DBusMessage *msg,
/* The previous calls should cause a call to the state callback to
* indicate AUDIO_STATE_CONNECTING */
if (priv->state != AUDIO_STATE_CONNECTING)
- return g_dbus_create_error(msg, ERROR_INTERFACE
- ".ConnectFailed",
- "Headset connect failed");
+ return btd_error_failed(msg, "Connect Failed");
priv->conn_req = dbus_message_ref(msg);
diff --git a/audio/gateway.c b/audio/gateway.c
index 05b9ff7..4d38be7 100644
--- a/audio/gateway.c
+++ b/audio/gateway.c
@@ -247,8 +247,7 @@ static void rfcomm_connect_cb(GIOChannel *chan, GError *err,
if (ret)
reply = dbus_message_new_method_return(gw->msg);
else
- reply = g_dbus_create_error(gw->msg, ERROR_INTERFACE ".Failed",
- "Can not pass file descriptor");
+ reply = btd_error_failed(gw->msg, "Can't pass file descriptor");
g_dbus_send_message(dev->conn, reply);
@@ -365,15 +364,15 @@ static DBusMessage *ag_connect(DBusConnection *conn, DBusMessage *msg,
{
struct audio_device *au_dev = (struct audio_device *) data;
struct gateway *gw = au_dev->gateway;
+ int err;
if (!gw->agent)
return g_dbus_create_error(msg, ERROR_INTERFACE
".Failed", "Agent not assigned");
- if (get_records(au_dev) < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE
- ".ConnectAttemptFailed",
- "Connect Attempt Failed");
+ err = get_records(au_dev);
+ if (err < 0)
+ return btd_error_failed(msg, strerror(-err));
gw->msg = dbus_message_ref(msg);
diff --git a/audio/headset.c b/audio/headset.c
index 18fd866..34b2b89 100644
--- a/audio/headset.c
+++ b/audio/headset.c
@@ -1709,13 +1709,8 @@ static DBusMessage *hs_connect(DBusConnection *conn, DBusMessage *msg,
device->auto_connect = FALSE;
err = rfcomm_connect(device, NULL, NULL, NULL);
- if (err == -ECONNREFUSED)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".NotAllowed",
- "Too many connected devices");
- else if (err < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE
- ".ConnectAttemptFailed",
- "Connect Attempt Failed");
+ if (err < 0)
+ return btd_error_failed(msg, strerror(-err));
hs->auto_dc = FALSE;
@@ -1747,8 +1742,7 @@ static DBusMessage *hs_ring(DBusConnection *conn, DBusMessage *msg,
err = headset_send(hs, "\r\nRING\r\n");
if (err < 0) {
dbus_message_unref(reply);
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
}
ring_timer_cb(NULL);
@@ -1815,8 +1809,7 @@ static DBusMessage *hs_play(DBusConnection *conn, DBusMessage *msg,
err = sco_connect(device, NULL, NULL, NULL);
if (err < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
hs->pending->msg = dbus_message_ref(msg);
@@ -1900,8 +1893,7 @@ static DBusMessage *hs_set_gain(DBusConnection *conn,
err = headset_send(hs, "\r\n+VG%c=%u\r\n", type, gain);
if (err < 0) {
dbus_message_unref(reply);
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
}
}
diff --git a/audio/sink.c b/audio/sink.c
index 176a4ed..5746c55 100644
--- a/audio/sink.c
+++ b/audio/sink.c
@@ -435,8 +435,7 @@ static DBusMessage *sink_connect(DBusConnection *conn,
sink->session = avdtp_get(&dev->src, &dev->dst);
if (!sink->session)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Unable to get a session");
+ return btd_error_failed(msg, "Unable to get a session");
if (sink->connect || sink->disconnect)
return btd_error_busy(msg);
@@ -445,8 +444,7 @@ static DBusMessage *sink_connect(DBusConnection *conn,
return btd_error_already_connected(msg);
if (!sink_setup_stream(sink, NULL))
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Failed to create a stream");
+ return btd_error_failed(msg, "Failed to create a stream");
dev->auto_connect = FALSE;
@@ -485,8 +483,7 @@ static DBusMessage *sink_disconnect(DBusConnection *conn,
err = avdtp_close(sink->session, sink->stream, FALSE);
if (err < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
pending = g_new0(struct pending_request, 1);
pending->conn = dbus_connection_ref(conn);
diff --git a/audio/source.c b/audio/source.c
index c106eaa..29ceb0f 100644
--- a/audio/source.c
+++ b/audio/source.c
@@ -386,8 +386,7 @@ static DBusMessage *source_connect(DBusConnection *conn,
source->session = avdtp_get(&dev->src, &dev->dst);
if (!source->session)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Unable to get a session");
+ return btd_error_failed(msg, "Unable to get a session");
if (source->connect || source->disconnect)
return btd_error_busy(msg);
@@ -396,8 +395,7 @@ static DBusMessage *source_connect(DBusConnection *conn,
return btd_error_already_connected(msg);
if (!source_setup_stream(source, NULL))
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Failed to create a stream");
+ return btd_error_failed(msg, "Failed to create a stream");
dev->auto_connect = FALSE;
@@ -436,8 +434,7 @@ static DBusMessage *source_disconnect(DBusConnection *conn,
err = avdtp_close(source->session, source->stream, FALSE);
if (err < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
pending = g_new0(struct pending_request, 1);
pending->conn = dbus_connection_ref(conn);
diff --git a/audio/transport.c b/audio/transport.c
index e2ee400..bdec157 100644
--- a/audio/transport.c
+++ b/audio/transport.c
@@ -93,11 +93,6 @@ struct media_transport {
DBusMessageIter *value);
};
-static inline DBusMessage *error_failed(DBusMessage *msg, const char *desc)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed", "%s", desc);
-}
-
void media_transport_remove(struct media_transport *transport)
{
char *path;
@@ -572,7 +567,7 @@ static DBusMessage *set_property(DBusConnection *conn, DBusMessage *msg,
if (err < 0) {
if (err == -EINVAL)
return btd_error_invalid_args(msg);
- return error_failed(msg, strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
}
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 09/10] serial: use btd_error_failed()
2010-12-13 21:33 ` [PATCH 08/10] audio: " Gustavo F. Padovan
@ 2010-12-13 21:33 ` Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 10/10] src: " Gustavo F. Padovan
0 siblings, 1 reply; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:33 UTC (permalink / raw)
To: linux-bluetooth
---
serial/port.c | 20 +++++++++-----------
serial/proxy.c | 8 ++------
2 files changed, 11 insertions(+), 17 deletions(-)
diff --git a/serial/port.c b/serial/port.c
index 0d1e600..1458f06 100644
--- a/serial/port.c
+++ b/serial/port.c
@@ -248,7 +248,7 @@ static void open_notify(int fd, int err, struct serial_port *port)
if (err) {
/* Max tries exceeded */
port_release(port);
- reply = failed(port->msg, strerror(err));
+ reply = btd_error_failed(port->msg, strerror(err));
} else {
port->fd = fd;
reply = g_dbus_create_reply(port->msg,
@@ -316,7 +316,7 @@ static void rfcomm_connect_cb(GIOChannel *chan, GError *conn_err,
if (conn_err) {
error("%s", conn_err->message);
- reply = failed(port->msg, conn_err->message);
+ reply = btd_error_failed(port->msg, conn_err->message);
goto fail;
}
@@ -335,7 +335,7 @@ static void rfcomm_connect_cb(GIOChannel *chan, GError *conn_err,
if (port->id < 0) {
int err = errno;
error("ioctl(RFCOMMCREATEDEV): %s (%d)", strerror(err), err);
- reply = failed(port->msg, strerror(err));
+ reply = btd_error_failed(port->msg, strerror(err));
g_io_channel_shutdown(chan, TRUE, NULL);
goto fail;
}
@@ -378,13 +378,13 @@ static void get_record_cb(sdp_list_t *recs, int err, gpointer user_data)
if (err < 0) {
error("Unable to get service record: %s (%d)", strerror(-err),
-err);
- reply = failed(port->msg, strerror(-err));
+ reply = btd_error_failed(port->msg, strerror(-err));
goto failed;
}
if (!recs || !recs->data) {
error("No record found");
- reply = failed(port->msg, "No record found");
+ reply = btd_error_failed(port->msg, "No record found");
goto failed;
}
@@ -392,7 +392,7 @@ static void get_record_cb(sdp_list_t *recs, int err, gpointer user_data)
if (sdp_get_access_protos(record, &protos) < 0) {
error("Unable to get access protos from port record");
- reply = failed(port->msg, "Invalid channel");
+ reply = btd_error_failed(port->msg, "Invalid channel");
goto failed;
}
@@ -409,7 +409,7 @@ static void get_record_cb(sdp_list_t *recs, int err, gpointer user_data)
BT_IO_OPT_INVALID);
if (!port->io) {
error("%s", gerr->message);
- reply = failed(port->msg, gerr->message);
+ reply = btd_error_failed(port->msg, gerr->message);
g_error_free(gerr);
goto failed;
}
@@ -505,13 +505,11 @@ static DBusMessage *port_connect(DBusConnection *conn,
err = connect_port(port);
if (err < 0) {
- DBusMessage *reply;
-
error("%s", strerror(-err));
g_dbus_remove_watch(conn, port->listener_id);
port->listener_id = 0;
- reply = failed(msg, strerror(-err));
- return reply;
+
+ return btd_error_failed(msg, strerror(-err));
}
return NULL;
diff --git a/serial/proxy.c b/serial/proxy.c
index c779c4e..20aea7d 100644
--- a/serial/proxy.c
+++ b/serial/proxy.c
@@ -553,11 +553,8 @@ static DBusMessage *proxy_enable(DBusConnection *conn,
err = enable_proxy(prx);
if (err == -EALREADY)
return failed(msg, "Already enabled");
- else if (err == -ENOMEM)
- return failed(msg, "Unable to allocate new service record");
else if (err < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE "Failed",
- "Proxy enable failed (%s)", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
return dbus_message_new_method_return(msg);
}
@@ -1051,8 +1048,7 @@ static DBusMessage *create_proxy(DBusConnection *conn,
else if (err == -EALREADY)
return btd_error_already_exists(msg);
else if (err < 0)
- return g_dbus_create_error(msg, ERROR_INTERFACE "Failed",
- "Proxy creation failed (%s)", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
proxy->owner = g_strdup(dbus_message_get_sender(msg));
proxy->watch = g_dbus_add_disconnect_watch(conn, proxy->owner,
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 10/10] src: use btd_error_failed()
2010-12-13 21:33 ` [PATCH 09/10] serial: " Gustavo F. Padovan
@ 2010-12-13 21:33 ` Gustavo F. Padovan
0 siblings, 0 replies; 12+ messages in thread
From: Gustavo F. Padovan @ 2010-12-13 21:33 UTC (permalink / raw)
To: linux-bluetooth
---
src/adapter.c | 37 +++++++++++++------------------------
src/device.c | 44 ++++++++++++--------------------------------
2 files changed, 25 insertions(+), 56 deletions(-)
diff --git a/src/adapter.c b/src/adapter.c
index e37b200..47ee26a 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -146,12 +146,6 @@ static inline DBusMessage *adapter_not_ready(DBusMessage *msg)
"Adapter is not ready");
}
-static inline DBusMessage *failed_strerror(DBusMessage *msg, int err)
-{
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(err));
-}
-
static inline DBusMessage *not_in_progress(DBusMessage *msg, const char *str)
{
return g_dbus_create_error(msg, ERROR_INTERFACE ".NotInProgress",
@@ -523,7 +517,7 @@ static DBusMessage *set_discoverable(DBusConnection *conn, DBusMessage *msg,
err = set_mode(adapter, mode, msg);
if (err < 0)
- return failed_strerror(msg, -err);
+ return btd_error_failed(msg, strerror(-err));
return NULL;
}
@@ -548,7 +542,7 @@ static DBusMessage *set_powered(DBusConnection *conn, DBusMessage *msg,
err = set_mode(adapter, mode, msg);
if (err < 0)
- return failed_strerror(msg, -err);
+ return btd_error_failed(msg, strerror(-err));
return NULL;
}
@@ -570,7 +564,7 @@ static DBusMessage *set_pairable(DBusConnection *conn, DBusMessage *msg,
err = set_mode(adapter, MODE_DISCOVERABLE, NULL);
if (err < 0 && msg)
- return failed_strerror(msg, -err);
+ return btd_error_failed(msg, strerror(-err));
store:
@@ -775,7 +769,7 @@ static void confirm_mode_cb(struct agent *agent, DBusError *derr, void *data)
err = set_mode(req->adapter, req->mode, NULL);
if (err < 0)
- reply = failed_strerror(req->msg, -err);
+ reply = btd_error_failed(req->msg, strerror(-err));
else
reply = dbus_message_new_method_return(req->msg);
@@ -906,7 +900,7 @@ static DBusMessage *set_name(DBusConnection *conn, DBusMessage *msg,
if (adapter->up) {
int err = adapter_ops->set_name(adapter->dev_id, name);
if (err < 0)
- return failed_strerror(msg, err);
+ return btd_error_failed(msg, strerror(-err));
adapter->name_stored = TRUE;
}
@@ -1185,7 +1179,7 @@ static DBusMessage *adapter_start_discovery(DBusConnection *conn,
err = start_discovery(adapter);
if (err < 0)
- return failed_strerror(msg, -err);
+ return btd_error_failed(msg, strerror(-err));
done:
req = create_session(adapter, conn, msg, 0,
@@ -1208,8 +1202,7 @@ static DBusMessage *adapter_stop_discovery(DBusConnection *conn,
req = find_session(adapter->disc_sessions, sender);
if (!req)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Invalid discovery session");
+ return btd_error_failed(msg, "Invalid discovery session");
session_unref(req);
info("Stopping discovery");
@@ -1446,7 +1439,7 @@ static DBusMessage *request_session(DBusConnection *conn,
confirm_mode_cb, req, NULL);
if (err < 0) {
session_unref(req);
- return failed_strerror(msg, -err);
+ return btd_error_failed(msg, strerror(-err));
}
return NULL;
@@ -1461,8 +1454,7 @@ static DBusMessage *release_session(DBusConnection *conn,
req = find_session(adapter->mode_sessions, sender);
if (!req)
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "No Mode to release");
+ return btd_error_failed(msg, "Invalid Session");
session_unref(req);
@@ -1622,7 +1614,7 @@ static DBusMessage *create_device(DBusConnection *conn,
err = device_browse(device, conn, msg, NULL, FALSE);
if (err < 0) {
adapter_remove_device(conn, adapter, device, TRUE);
- return failed_strerror(msg, -err);
+ return btd_error_failed(msg, strerror(-err));
}
return NULL;
@@ -1676,8 +1668,7 @@ static DBusMessage *create_paired_device(DBusConnection *conn,
device = adapter_get_device(conn, adapter, address);
if (!device)
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".Failed",
+ return btd_error_failed(msg,
"Unable to create a new device object");
return device_create_bonding(device, conn, msg, agent_path, cap);
@@ -1788,9 +1779,7 @@ static DBusMessage *register_agent(DBusConnection *conn, DBusMessage *msg,
agent = agent_create(adapter, name, path, cap,
(agent_remove_cb) agent_removed, adapter);
if (!agent)
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".Failed",
- "Failed to create a new agent");
+ return btd_error_failed(msg, "Failed to create a new agent");
adapter->agent = agent;
@@ -2334,7 +2323,7 @@ static void set_mode_complete(struct btd_adapter *adapter)
DBusMessage *reply;
if (err < 0)
- reply = failed_strerror(msg, -err);
+ reply = btd_error_failed(msg, strerror(-err));
else
reply = g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
diff --git a/src/device.c b/src/device.c
index 0f4dc0b..cec2153 100644
--- a/src/device.c
+++ b/src/device.c
@@ -157,20 +157,6 @@ static uint16_t uuid_list[] = {
static GSList *device_drivers = NULL;
-static DBusHandlerResult error_failed(DBusConnection *conn,
- DBusMessage *msg, const char * desc)
-{
- return error_common_reply(conn, msg, ERROR_INTERFACE ".Failed", desc);
-}
-
-static DBusHandlerResult error_failed_errno(DBusConnection *conn,
- DBusMessage *msg, int err)
-{
- const char *desc = strerror(err);
-
- return error_failed(conn, msg, desc);
-}
-
static void browse_request_free(struct browse_req *req)
{
if (req->listener_id)
@@ -380,9 +366,7 @@ static DBusMessage *set_alias(DBusConnection *conn, DBusMessage *msg,
err = write_device_alias(srcaddr, dstaddr,
g_str_equal(alias, "") ? NULL : alias);
if (err < 0)
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
g_free(device->alias);
device->alias = g_str_equal(alias, "") ? NULL : g_strdup(alias);
@@ -412,9 +396,7 @@ static DBusMessage *set_trust(DBusConnection *conn, DBusMessage *msg,
err = write_trust(srcaddr, dstaddr, GLOBAL_TRUST, value);
if (err < 0)
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
device->trusted = value;
@@ -526,12 +508,9 @@ static DBusMessage *set_blocked(DBusConnection *conn, DBusMessage *msg,
case 0:
return dbus_message_new_method_return(msg);
case EINVAL:
- return g_dbus_create_error(msg,
- ERROR_INTERFACE ".NotSupported",
- "Kernel lacks blacklist support");
+ return btd_error_failed(msg, "Kernel lacks blacklist support");
default:
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "%s", strerror(-err));
+ return btd_error_failed(msg, strerror(-err));
}
}
@@ -627,8 +606,7 @@ static DBusMessage *discover_services(DBusConnection *conn,
return NULL;
fail:
- return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
- "Discovery Failed");
+ return btd_error_failed(msg, strerror(-err));
}
static const char *browse_request_get_requestor(struct browse_req *req)
@@ -1473,7 +1451,9 @@ send_reply:
else if (dbus_message_is_method_call(req->msg, ADAPTER_INTERFACE,
"CreateDevice")) {
if (err < 0) {
- error_failed_errno(req->conn, req->msg, -err);
+ DBusMessage *reply;
+ reply = btd_error_failed(req->msg, strerror(-err));
+ g_dbus_send_message(req->conn, reply);
goto cleanup;
}
@@ -1544,7 +1524,9 @@ static void primary_cb(GSList *services, int err, gpointer user_data)
struct btd_device *device = req->device;
if (err) {
- error_failed_errno(req->conn, req->msg, -err);
+ DBusMessage *reply;
+ reply = btd_error_failed(req->msg, strerror(-err));
+ g_dbus_send_message(req->conn, reply);
goto done;
}
@@ -2000,9 +1982,7 @@ DBusMessage *device_create_bonding(struct btd_device *device,
BT_IO_OPT_INVALID);
if (io == NULL) {
DBusMessage *reply;
- reply = g_dbus_create_error(msg,
- ERROR_INTERFACE ".ConnectionAttemptFailed",
- "%s", err->message);
+ reply = btd_error_failed(msg, err->message);
error("bt_io_connect: %s", err->message);
g_error_free(err);
return reply;
--
1.7.3.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 00/10] More btd_error_* patches
2010-12-13 21:32 [PATCH 00/10] More btd_error_* patches Gustavo F. Padovan
2010-12-13 21:32 ` [PATCH 01/10] Add btd_error_no_such_adapter() Gustavo F. Padovan
@ 2010-12-14 8:56 ` Johan Hedberg
1 sibling, 0 replies; 12+ messages in thread
From: Johan Hedberg @ 2010-12-14 8:56 UTC (permalink / raw)
To: Gustavo F. Padovan; +Cc: linux-bluetooth
Hi Gustavo,
On Mon, Dec 13, 2010, Gustavo F. Padovan wrote:
> This patch set adds a new error function btd_error_failed(), which has a str
> parameter to enable a more accurate error report in the case the usual
> btd_error_* does not fit.
>
> After this patch set there will 10 occurrences of g_dbus_create_error() inside
> bluez code (not counting health/ here)
Thanks. The patches are now upstream. However, I did have to push other
fixes on top of them since a few functions that you assumed were
returning a proper negative errno value were in fact only returning -1.
Johan
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2010-12-14 8:56 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-13 21:32 [PATCH 00/10] More btd_error_* patches Gustavo F. Padovan
2010-12-13 21:32 ` [PATCH 01/10] Add btd_error_no_such_adapter() Gustavo F. Padovan
2010-12-13 21:32 ` [PATCH 02/10] src: use btd_error_invalid_args() Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 03/10] Add btd_error_failed() Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 04/10] plugins: use btd_error_failed() Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 05/10] attrib: " Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 06/10] network: " Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 07/10] input: " Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 08/10] audio: " Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 09/10] serial: " Gustavo F. Padovan
2010-12-13 21:33 ` [PATCH 10/10] src: " Gustavo F. Padovan
2010-12-14 8:56 ` [PATCH 00/10] More btd_error_* patches Johan Hedberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox