* [PATCH 1/4] add btd_error_agent_not_assigned() @ 2010-12-15 22:07 Gustavo F. Padovan 2010-12-15 22:07 ` [PATCH 2/4] remove error_common_reply() Gustavo F. Padovan 2010-12-16 9:29 ` [PATCH 1/4] add btd_error_agent_not_assigned() Johan Hedberg 0 siblings, 2 replies; 6+ messages in thread From: Gustavo F. Padovan @ 2010-12-15 22:07 UTC (permalink / raw) To: linux-bluetooth --- audio/gateway.c | 3 +-- src/adapter.c | 3 +-- src/error.c | 6 ++++++ src/error.h | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/audio/gateway.c b/audio/gateway.c index 4d38be7..6a095ca 100644 --- a/audio/gateway.c +++ b/audio/gateway.c @@ -367,8 +367,7 @@ static DBusMessage *ag_connect(DBusConnection *conn, DBusMessage *msg, int err; if (!gw->agent) - return g_dbus_create_error(msg, ERROR_INTERFACE - ".Failed", "Agent not assigned"); + return btd_error_agent_not_assigned(msg); err = get_records(au_dev); if (err < 0) diff --git a/src/adapter.c b/src/adapter.c index 2ff59a0..73c8a9b 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -1412,8 +1412,7 @@ static DBusMessage *request_session(DBusConnection *conn, int err; if (!adapter->agent) - return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed", - "No agent registered"); + return btd_error_agent_not_assigned(msg); if (!adapter->mode_sessions) adapter->global_mode = adapter->mode; diff --git a/src/error.c b/src/error.c index 3a78628..25f89f6 100644 --- a/src/error.c +++ b/src/error.c @@ -115,6 +115,12 @@ DBusMessage *btd_error_no_such_adapter(DBusMessage *msg) "No such adapter"); } +DBusMessage *btd_error_agent_not_assigned(DBusMessage *msg) +{ + return g_dbus_create_error(msg, ERROR_INTERFACE ".AgentNotAssigned", + "Agent Not Assigned"); +} + DBusMessage *btd_error_failed(DBusMessage *msg, const char *str) { return g_dbus_create_error(msg, ERROR_INTERFACE diff --git a/src/error.h b/src/error.h index faaef0a..0f2eb22 100644 --- a/src/error.h +++ b/src/error.h @@ -41,4 +41,5 @@ 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_agent_not_assigned(DBusMessage *msg); DBusMessage *btd_error_failed(DBusMessage *msg, const char *str); -- 1.7.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] remove error_common_reply() 2010-12-15 22:07 [PATCH 1/4] add btd_error_agent_not_assigned() Gustavo F. Padovan @ 2010-12-15 22:07 ` Gustavo F. Padovan 2010-12-15 22:07 ` [PATCH 3/4] add btd_error_not_ready() Gustavo F. Padovan 2010-12-16 9:30 ` [PATCH 2/4] remove error_common_reply() Johan Hedberg 2010-12-16 9:29 ` [PATCH 1/4] add btd_error_agent_not_assigned() Johan Hedberg 1 sibling, 2 replies; 6+ messages in thread From: Gustavo F. Padovan @ 2010-12-15 22:07 UTC (permalink / raw) To: linux-bluetooth Remove old dbus error report function. This patch doesn't make things really really better, but is a start. --- audio/gateway.c | 18 ++++++++++-------- audio/headset.c | 37 +++++++++++++++---------------------- audio/sink.c | 7 ++++--- audio/source.c | 7 ++++--- src/error.c | 18 ------------------ src/error.h | 3 --- 6 files changed, 33 insertions(+), 57 deletions(-) diff --git a/audio/gateway.c b/audio/gateway.c index 6a095ca..da899a0 100644 --- a/audio/gateway.c +++ b/audio/gateway.c @@ -254,10 +254,11 @@ static void rfcomm_connect_cb(GIOChannel *chan, GError *err, return; fail: - if (gw->msg) - error_common_reply(dev->conn, gw->msg, - ERROR_INTERFACE ".Failed", - "Connection attempt failed"); + if (gw->msg) { + DBusMessage *reply; + reply = btd_error_failed(gw->msg, "Connect failed"); + g_dbus_send_message(dev->conn, reply); + } change_state(dev, GATEWAY_STATE_DISCONNECTED); } @@ -333,10 +334,11 @@ static void get_record_cb(sdp_list_t *recs, int err, gpointer user_data) return; fail: - if (gw->msg) - error_common_reply(dev->conn, gw->msg, - ERROR_INTERFACE ".NotSupported", - "Not supported"); + if (gw->msg) { + DBusMessage *reply = btd_error_failed(gw->msg, + gerr ? gerr->message : strerror(-err)); + g_dbus_send_message(dev->conn, reply); + } change_state(dev, GATEWAY_STATE_DISCONNECTED); diff --git a/audio/headset.c b/audio/headset.c index 34b2b89..55bdc61 100644 --- a/audio/headset.c +++ b/audio/headset.c @@ -176,19 +176,12 @@ struct event { static GSList *headset_callbacks = NULL; -static DBusHandlerResult error_not_supported(DBusConnection *conn, - DBusMessage *msg) +static void error_connect_failed(DBusConnection *conn, DBusMessage *msg, + int err) { - return error_common_reply(conn, msg, ERROR_INTERFACE ".NotSupported", - "Not supported"); -} - -static DBusHandlerResult error_connection_attempt_failed(DBusConnection *conn, - DBusMessage *msg, int err) -{ - return error_common_reply(conn, msg, - ERROR_INTERFACE ".ConnectionAttemptFailed", - err < 0 ? strerror(-err) : "Connection attempt failed"); + DBusMessage *reply = btd_error_failed(msg, + err < 0 ? strerror(-err) : "Connect failed"); + g_dbus_send_message(conn, reply); } static int rfcomm_connect(struct audio_device *device, headset_stream_cb_t cb, @@ -567,9 +560,7 @@ static void sco_connect_cb(GIOChannel *chan, GError *err, gpointer user_data) if (p != NULL) { p->err = -errno; if (p->msg) - error_connection_attempt_failed(dev->conn, - p->msg, - p->err); + error_connect_failed(dev->conn, p->msg, p->err); pending_connect_finalize(dev); } @@ -679,7 +670,7 @@ static void hfp_slc_complete(struct audio_device *dev) p->err = sco_connect(dev, NULL, NULL, NULL); if (p->err < 0) { if (p->msg) - error_connection_attempt_failed(dev->conn, p->msg, p->err); + error_connect_failed(dev->conn, p->msg, p->err); pending_connect_finalize(dev); } } @@ -1397,7 +1388,7 @@ void headset_connect_cb(GIOChannel *chan, GError *err, gpointer user_data) failed: if (p && p->msg) - error_connection_attempt_failed(dev->conn, p->msg, p->err); + error_connect_failed(dev->conn, p->msg, p->err); pending_connect_finalize(dev); if (hs->rfcomm) headset_set_state(dev, HEADSET_STATE_CONNECTED); @@ -1454,7 +1445,7 @@ static void get_record_cb(sdp_list_t *recs, int err, gpointer user_data) error("Unable to get service record: %s (%d)", strerror(-err), -err); p->err = -err; - error_connection_attempt_failed(dev->conn, p->msg, p->err); + error_connect_failed(dev->conn, p->msg, p->err); goto failed; } @@ -1503,7 +1494,7 @@ static void get_record_cb(sdp_list_t *recs, int err, gpointer user_data) if (err < 0) { error("Unable to connect: %s (%d)", strerror(-err), -err); p->err = -err; - error_connection_attempt_failed(dev->conn, p->msg, p->err); + error_connect_failed(dev->conn, p->msg, p->err); goto failed; } @@ -1513,8 +1504,10 @@ failed_not_supported: if (p->svclass == HANDSFREE_SVCLASS_ID && get_records(dev, NULL, NULL, NULL) == 0) return; - if (p->msg) - error_not_supported(dev->conn, p->msg); + if (p->msg) { + DBusMessage *reply = btd_error_not_supported(p->msg); + g_dbus_send_message(dev->conn, reply); + } failed: p->svclass = 0; pending_connect_finalize(dev); @@ -2667,7 +2660,7 @@ void headset_shutdown(struct audio_device *dev) struct pending_connect *p = dev->headset->pending; if (p && p->msg) - error_connection_attempt_failed(dev->conn, p->msg, ECANCELED); + error_connect_failed(dev->conn, p->msg, ECANCELED); pending_connect_finalize(dev); headset_set_state(dev, HEADSET_STATE_DISCONNECTED); diff --git a/audio/sink.c b/audio/sink.c index 5746c55..2d5db18 100644 --- a/audio/sink.c +++ b/audio/sink.c @@ -253,10 +253,11 @@ static void stream_state_changed(struct avdtp_stream *stream, sink->stream_state = new_state; } -static DBusHandlerResult error_failed(DBusConnection *conn, - DBusMessage *msg, const char * desc) +static void error_failed(DBusConnection *conn, DBusMessage *msg, + const char *desc) { - return error_common_reply(conn, msg, ERROR_INTERFACE ".Failed", desc); + DBusMessage *reply = btd_error_failed(msg, desc); + g_dbus_send_message(conn, reply); } static gboolean stream_setup_retry(gpointer user_data) diff --git a/audio/source.c b/audio/source.c index 29ceb0f..6d266f2 100644 --- a/audio/source.c +++ b/audio/source.c @@ -206,10 +206,11 @@ static void stream_state_changed(struct avdtp_stream *stream, source->stream_state = new_state; } -static DBusHandlerResult error_failed(DBusConnection *conn, - DBusMessage *msg, const char * desc) +static void error_failed(DBusConnection *conn, DBusMessage *msg, + const char *desc) { - return error_common_reply(conn, msg, ERROR_INTERFACE ".Failed", desc); + DBusMessage *reply = btd_error_failed(msg, desc); + g_dbus_send_message(conn, reply); } static gboolean stream_setup_retry(gpointer user_data) diff --git a/src/error.c b/src/error.c index 25f89f6..7d3afd4 100644 --- a/src/error.c +++ b/src/error.c @@ -31,24 +31,6 @@ #include "error.h" -/* Helper function - internal use only */ -DBusHandlerResult error_common_reply(DBusConnection *conn, DBusMessage *msg, - const char *name, const char *descr) -{ - DBusMessage *derr; - - if (!conn || !msg) - return DBUS_HANDLER_RESULT_HANDLED; - - derr = dbus_message_new_error(msg, name, descr); - if (!derr) - return DBUS_HANDLER_RESULT_NEED_MEMORY; - - g_dbus_send_message(conn, derr); - - return DBUS_HANDLER_RESULT_HANDLED; -} - DBusMessage *btd_error_invalid_args(DBusMessage *msg) { return g_dbus_create_error(msg, ERROR_INTERFACE ".InvalidArguments", diff --git a/src/error.h b/src/error.h index 0f2eb22..b8c06ce 100644 --- a/src/error.h +++ b/src/error.h @@ -27,9 +27,6 @@ #define ERROR_INTERFACE "org.bluez.Error" -DBusHandlerResult error_common_reply(DBusConnection *conn, DBusMessage *msg, - const char *name, const char *descr); - DBusMessage *btd_error_invalid_args(DBusMessage *msg); DBusMessage *btd_error_busy(DBusMessage *msg); DBusMessage *btd_error_already_exists(DBusMessage *msg); -- 1.7.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] add btd_error_not_ready() 2010-12-15 22:07 ` [PATCH 2/4] remove error_common_reply() Gustavo F. Padovan @ 2010-12-15 22:07 ` Gustavo F. Padovan 2010-12-15 22:07 ` [PATCH 4/4] covert more dbus errors to btd_error_* Gustavo F. Padovan 2010-12-16 9:30 ` [PATCH 2/4] remove error_common_reply() Johan Hedberg 1 sibling, 1 reply; 6+ messages in thread From: Gustavo F. Padovan @ 2010-12-15 22:07 UTC (permalink / raw) To: linux-bluetooth --- audio/headset.c | 3 +-- src/adapter.c | 16 +++++----------- src/error.c | 6 ++++++ src/error.h | 1 + 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/audio/headset.c b/audio/headset.c index 55bdc61..be14d3b 100644 --- a/audio/headset.c +++ b/audio/headset.c @@ -1696,8 +1696,7 @@ static DBusMessage *hs_connect(DBusConnection *conn, DBusMessage *msg, return btd_error_already_connected(msg); if (hs->hfp_handle && !ag.telephony_ready) - return g_dbus_create_error(msg, ERROR_INTERFACE ".NotReady", - "Telephony subsystem not ready"); + return btd_error_not_ready(msg); device->auto_connect = FALSE; diff --git a/src/adapter.c b/src/adapter.c index 73c8a9b..f0e1d36 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -140,12 +140,6 @@ struct btd_adapter { static void adapter_set_pairable_timeout(struct btd_adapter *adapter, guint interval); -static inline DBusMessage *adapter_not_ready(DBusMessage *msg) -{ - return g_dbus_create_error(msg, ERROR_INTERFACE ".NotReady", - "Adapter is not ready"); -} - static inline DBusMessage *not_in_progress(DBusMessage *msg, const char *str) { return g_dbus_create_error(msg, ERROR_INTERFACE ".NotInProgress", @@ -554,7 +548,7 @@ static DBusMessage *set_pairable(DBusConnection *conn, DBusMessage *msg, int err; if (adapter->scan_mode == SCAN_DISABLED) - return adapter_not_ready(msg); + return btd_error_not_ready(msg); if (pairable == adapter->pairable) goto done; @@ -1166,7 +1160,7 @@ static DBusMessage *adapter_start_discovery(DBusConnection *conn, int err; if (!adapter->up) - return adapter_not_ready(msg); + return btd_error_not_ready(msg); req = find_session(adapter->disc_sessions, sender); if (req) { @@ -1198,7 +1192,7 @@ static DBusMessage *adapter_stop_discovery(DBusConnection *conn, const char *sender = dbus_message_get_sender(msg); if (!adapter->up) - return adapter_not_ready(msg); + return btd_error_not_ready(msg); req = find_session(adapter->disc_sessions, sender); if (!req) @@ -1575,7 +1569,7 @@ static DBusMessage *create_device(DBusConnection *conn, return btd_error_invalid_args(msg); if (!adapter->up) - return adapter_not_ready(msg); + return btd_error_not_ready(msg); if (adapter_find_device(adapter, address)) return btd_error_already_exists(msg); @@ -1652,7 +1646,7 @@ static DBusMessage *create_paired_device(DBusConnection *conn, return btd_error_invalid_args(msg); if (!adapter->up) - return adapter_not_ready(msg); + return btd_error_not_ready(msg); sender = dbus_message_get_sender(msg); if (adapter->agent && diff --git a/src/error.c b/src/error.c index 7d3afd4..8ee79b8 100644 --- a/src/error.c +++ b/src/error.c @@ -103,6 +103,12 @@ DBusMessage *btd_error_agent_not_assigned(DBusMessage *msg) "Agent Not Assigned"); } +DBusMessage *btd_error_not_ready(DBusMessage *msg) +{ + return g_dbus_create_error(msg, ERROR_INTERFACE ".NotReady", + "Resource Not Ready"); +} + DBusMessage *btd_error_failed(DBusMessage *msg, const char *str) { return g_dbus_create_error(msg, ERROR_INTERFACE diff --git a/src/error.h b/src/error.h index b8c06ce..6cd3cbf 100644 --- a/src/error.h +++ b/src/error.h @@ -39,4 +39,5 @@ 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_agent_not_assigned(DBusMessage *msg); +DBusMessage *btd_error_not_ready(DBusMessage *msg); DBusMessage *btd_error_failed(DBusMessage *msg, const char *str); -- 1.7.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] covert more dbus errors to btd_error_* 2010-12-15 22:07 ` [PATCH 3/4] add btd_error_not_ready() Gustavo F. Padovan @ 2010-12-15 22:07 ` Gustavo F. Padovan 0 siblings, 0 replies; 6+ messages in thread From: Gustavo F. Padovan @ 2010-12-15 22:07 UTC (permalink / raw) To: linux-bluetooth --- audio/headset.c | 4 +--- serial/port.c | 8 +------- serial/proxy.c | 12 ++---------- src/adapter.c | 10 ++-------- 4 files changed, 6 insertions(+), 28 deletions(-) diff --git a/audio/headset.c b/audio/headset.c index be14d3b..b7489a9 100644 --- a/audio/headset.c +++ b/audio/headset.c @@ -1873,9 +1873,7 @@ static DBusMessage *hs_set_gain(DBusConnection *conn, err = headset_set_gain(device, gain, type); if (err < 0) - return g_dbus_create_error(msg, ERROR_INTERFACE - ".InvalidArgument", - "Must be less than or equal to 15"); + return btd_error_invalid_args(msg); reply = dbus_message_new_method_return(msg); if (!reply) diff --git a/serial/port.c b/serial/port.c index 33450b3..233e317 100644 --- a/serial/port.c +++ b/serial/port.c @@ -234,12 +234,6 @@ void port_release_all(void) g_slist_free(devices); } -static inline DBusMessage *failed(DBusMessage *msg, const char *description) -{ - return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed", - "%s", description); -} - static void open_notify(int fd, int err, struct serial_port *port) { struct serial_device *device = port->device; @@ -495,7 +489,7 @@ static DBusMessage *port_connect(DBusConnection *conn, } if (port->listener_id) - return failed(msg, "Port already in use"); + return btd_error_failed(msg, "Port already in use"); port->listener_id = g_dbus_add_disconnect_watch(conn, dbus_message_get_sender(msg), diff --git a/serial/proxy.c b/serial/proxy.c index 20aea7d..b1ee65e 100644 --- a/serial/proxy.c +++ b/serial/proxy.c @@ -131,12 +131,6 @@ static void proxy_free(struct serial_proxy *prx) g_free(prx); } -static inline DBusMessage *failed(DBusMessage *msg, const char *description) -{ - return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed", - "%s", description); -} - static void add_lang_attr(sdp_record_t *r) { sdp_lang_attr_t base_lang; @@ -551,9 +545,7 @@ static DBusMessage *proxy_enable(DBusConnection *conn, int err; err = enable_proxy(prx); - if (err == -EALREADY) - return failed(msg, "Already enabled"); - else if (err < 0) + if (err < 0) return btd_error_failed(msg, strerror(-err)); return dbus_message_new_method_return(msg); @@ -565,7 +557,7 @@ static DBusMessage *proxy_disable(DBusConnection *conn, struct serial_proxy *prx = data; if (!prx->io) - return failed(msg, "Not enabled"); + return btd_error_failed(msg, "Not enabled"); /* Remove the watches and unregister the record */ disable_proxy(prx); diff --git a/src/adapter.c b/src/adapter.c index f0e1d36..27a8d39 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -140,12 +140,6 @@ struct btd_adapter { static void adapter_set_pairable_timeout(struct btd_adapter *adapter, guint interval); -static inline DBusMessage *not_in_progress(DBusMessage *msg, const char *str) -{ - return g_dbus_create_error(msg, ERROR_INTERFACE ".NotInProgress", - "%s", str); -} - static int found_device_cmp(const struct remote_dev_info *d1, const struct remote_dev_info *d2) { @@ -1226,7 +1220,7 @@ static DBusMessage *get_properties(DBusConnection *conn, ba2str(&adapter->bdaddr, srcaddr); if (check_address(srcaddr) < 0) - return adapter_not_ready(msg); + return btd_error_invalid_args(msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -1505,7 +1499,7 @@ static DBusMessage *cancel_device_creation(DBusConnection *conn, device = adapter_find_device(adapter, address); if (!device || !device_is_creating(device, NULL)) - return not_in_progress(msg, "Device creation not in progress"); + return btd_error_does_not_exist(msg); if (!device_is_creating(device, sender)) return btd_error_not_authorized(msg); -- 1.7.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/4] remove error_common_reply() 2010-12-15 22:07 ` [PATCH 2/4] remove error_common_reply() Gustavo F. Padovan 2010-12-15 22:07 ` [PATCH 3/4] add btd_error_not_ready() Gustavo F. Padovan @ 2010-12-16 9:30 ` Johan Hedberg 1 sibling, 0 replies; 6+ messages in thread From: Johan Hedberg @ 2010-12-16 9:30 UTC (permalink / raw) To: Gustavo F. Padovan; +Cc: linux-bluetooth Hi Gustavo, On Wed, Dec 15, 2010, Gustavo F. Padovan wrote: > Remove old dbus error report function. This patch doesn't make things > really really better, but is a start. > --- > audio/gateway.c | 18 ++++++++++-------- > audio/headset.c | 37 +++++++++++++++---------------------- > audio/sink.c | 7 ++++--- > audio/source.c | 7 ++++--- > src/error.c | 18 ------------------ > src/error.h | 3 --- > 6 files changed, 33 insertions(+), 57 deletions(-) Thanks. This patch has been pushed upstream. The other two will have to wait since I can't apply them before the first one has been fixed. Johan ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/4] add btd_error_agent_not_assigned() 2010-12-15 22:07 [PATCH 1/4] add btd_error_agent_not_assigned() Gustavo F. Padovan 2010-12-15 22:07 ` [PATCH 2/4] remove error_common_reply() Gustavo F. Padovan @ 2010-12-16 9:29 ` Johan Hedberg 1 sibling, 0 replies; 6+ messages in thread From: Johan Hedberg @ 2010-12-16 9:29 UTC (permalink / raw) To: Gustavo F. Padovan; +Cc: linux-bluetooth Hi Gustavo, On Wed, Dec 15, 2010, Gustavo F. Padovan wrote: > +DBusMessage *btd_error_agent_not_assigned(DBusMessage *msg) > +{ > + return g_dbus_create_error(msg, ERROR_INTERFACE ".AgentNotAssigned", > + "Agent Not Assigned"); > +} > + Could we make this AgentNotAvailable instead? Johan ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-12-16 9:30 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-12-15 22:07 [PATCH 1/4] add btd_error_agent_not_assigned() Gustavo F. Padovan 2010-12-15 22:07 ` [PATCH 2/4] remove error_common_reply() Gustavo F. Padovan 2010-12-15 22:07 ` [PATCH 3/4] add btd_error_not_ready() Gustavo F. Padovan 2010-12-15 22:07 ` [PATCH 4/4] covert more dbus errors to btd_error_* Gustavo F. Padovan 2010-12-16 9:30 ` [PATCH 2/4] remove error_common_reply() Johan Hedberg 2010-12-16 9:29 ` [PATCH 1/4] add btd_error_agent_not_assigned() Johan Hedberg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).