* [PATCH 1/3] hfp: remove duplicated ofono_modem_set_powered @ 2010-02-15 19:26 Gustavo F. Padovan 2010-02-15 19:26 ` [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor Gustavo F. Padovan 2010-02-15 19:39 ` [PATCH 1/3] hfp: remove duplicated ofono_modem_set_powered Denis Kenzior 0 siblings, 2 replies; 6+ messages in thread From: Gustavo F. Padovan @ 2010-02-15 19:26 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 548 bytes --] --- plugins/hfp.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/plugins/hfp.c b/plugins/hfp.c index 2d03973..411cfc1 100644 --- a/plugins/hfp.c +++ b/plugins/hfp.c @@ -110,8 +110,6 @@ static void service_level_conn_failed(struct ofono_modem *modem) struct hfp_data *data = ofono_modem_get_data(modem); DBusMessage *msg; - ofono_modem_set_powered(modem, FALSE); - msg = g_dbus_create_error(data->slc_msg, HFP_AGENT_ERROR_INTERFACE ".Failed", "HFP Handshake failed"); -- 1.6.4.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor 2010-02-15 19:26 [PATCH 1/3] hfp: remove duplicated ofono_modem_set_powered Gustavo F. Padovan @ 2010-02-15 19:26 ` Gustavo F. Padovan 2010-02-15 19:26 ` [PATCH 3/3] hfp: remove modems if bluetoothd shutdowns without calling Release Gustavo F. Padovan 2010-02-15 19:36 ` [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor Denis Kenzior 2010-02-15 19:39 ` [PATCH 1/3] hfp: remove duplicated ofono_modem_set_powered Denis Kenzior 1 sibling, 2 replies; 6+ messages in thread From: Gustavo F. Padovan @ 2010-02-15 19:26 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 1080 bytes --] --- plugins/hfp.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/plugins/hfp.c b/plugins/hfp.c index 411cfc1..3776dc6 100644 --- a/plugins/hfp.c +++ b/plugins/hfp.c @@ -482,6 +482,20 @@ error: service_level_conn_failed(modem); } +static gboolean hfp_fd_disconnected_cb(GIOChannel *chan, GIOCondition cond, + struct ofono_modem *modem) +{ + if (cond & G_IO_NVAL) + return FALSE; + + if (cond & (G_IO_ERR | G_IO_HUP)) { + ofono_modem_set_powered(modem, FALSE); + return FALSE; + } + + return TRUE; +} + /* either oFono or Phone could request SLC connection */ static int service_level_connection(struct ofono_modem *modem, int fd) { @@ -498,6 +512,9 @@ static int service_level_connection(struct ofono_modem *modem, int fd) return -EIO; } + g_io_add_watch(io, G_IO_ERR | G_IO_HUP | G_IO_NVAL, + (GIOFunc) hfp_fd_disconnected_cb, modem); + syntax = g_at_syntax_new_gsmv1(); chat = g_at_chat_new(io, syntax); g_at_syntax_unref(syntax); -- 1.6.4.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] hfp: remove modems if bluetoothd shutdowns without calling Release 2010-02-15 19:26 ` [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor Gustavo F. Padovan @ 2010-02-15 19:26 ` Gustavo F. Padovan 2010-02-15 19:41 ` Denis Kenzior 2010-02-15 19:36 ` [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor Denis Kenzior 1 sibling, 1 reply; 6+ messages in thread From: Gustavo F. Padovan @ 2010-02-15 19:26 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 2295 bytes --] --- plugins/hfp.c | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-) diff --git a/plugins/hfp.c b/plugins/hfp.c index 3776dc6..c63e332 100644 --- a/plugins/hfp.c +++ b/plugins/hfp.c @@ -911,6 +911,23 @@ done: dbus_message_unref(reply); } +static gboolean hfp_remove_each_modem(gpointer key, gpointer value, gpointer user_data) +{ + struct ofono_modem *modem = value; + + ofono_modem_remove(modem); + + return TRUE; +} + +static void bluetooth_disconnect(DBusConnection *connection, void *user_data) +{ + if (uuid_hash == NULL) + return; + + g_hash_table_foreach_remove(uuid_hash, hfp_remove_each_modem, NULL); +} + static int hfp_register_ofono_handsfree(struct ofono_modem *modem) { const char *obj_path = ofono_modem_get_path(modem); @@ -1098,6 +1115,7 @@ static struct ofono_modem_driver hfp_driver = { .post_sim = hfp_post_sim, }; +static guint watch; static guint adapter_added_watch; static guint adapter_removed_watch; static guint uuid_watch; @@ -1111,6 +1129,10 @@ static int hfp_init() connection = ofono_dbus_get_connection(); + watch = g_dbus_add_service_watch(connection, BLUEZ_SERVICE, + NULL, bluetooth_disconnect, NULL, NULL); + + adapter_added_watch = g_dbus_add_signal_watch(connection, NULL, NULL, BLUEZ_MANAGER_INTERFACE, "AdapterAdded", @@ -1126,8 +1148,8 @@ static int hfp_init() "PropertyChanged", property_changed, NULL, NULL); - if (adapter_added_watch == 0 || adapter_removed_watch == 0|| - uuid_watch == 0) { + if (watch == 0 || adapter_added_watch == 0 || + adapter_removed_watch == 0|| uuid_watch == 0) { err = -EIO; goto remove; } @@ -1150,6 +1172,7 @@ static int hfp_init() return 0; remove: + g_dbus_remove_watch(connection, watch); g_dbus_remove_watch(connection, adapter_added_watch); g_dbus_remove_watch(connection, adapter_removed_watch); g_dbus_remove_watch(connection, uuid_watch); @@ -1165,6 +1188,7 @@ remove: static void hfp_exit() { + g_dbus_remove_watch(connection, watch); g_dbus_remove_watch(connection, adapter_added_watch); g_dbus_remove_watch(connection, adapter_removed_watch); g_dbus_remove_watch(connection, uuid_watch); -- 1.6.4.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] hfp: remove modems if bluetoothd shutdowns without calling Release 2010-02-15 19:26 ` [PATCH 3/3] hfp: remove modems if bluetoothd shutdowns without calling Release Gustavo F. Padovan @ 2010-02-15 19:41 ` Denis Kenzior 0 siblings, 0 replies; 6+ messages in thread From: Denis Kenzior @ 2010-02-15 19:41 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 2568 bytes --] Hi Gustavo, > --- > plugins/hfp.c | 28 ++++++++++++++++++++++++++-- > 1 files changed, 26 insertions(+), 2 deletions(-) > > diff --git a/plugins/hfp.c b/plugins/hfp.c > index 3776dc6..c63e332 100644 > --- a/plugins/hfp.c > +++ b/plugins/hfp.c > @@ -911,6 +911,23 @@ done: > dbus_message_unref(reply); > } > > +static gboolean hfp_remove_each_modem(gpointer key, gpointer value, > gpointer user_data) +{ > + struct ofono_modem *modem = value; > + > + ofono_modem_remove(modem); > + > + return TRUE; > +} > + > +static void bluetooth_disconnect(DBusConnection *connection, void > *user_data) +{ > + if (uuid_hash == NULL) > + return; > + > + g_hash_table_foreach_remove(uuid_hash, hfp_remove_each_modem, NULL); > +} > + > static int hfp_register_ofono_handsfree(struct ofono_modem *modem) > { > const char *obj_path = ofono_modem_get_path(modem); > @@ -1098,6 +1115,7 @@ static struct ofono_modem_driver hfp_driver = { > .post_sim = hfp_post_sim, > }; > > +static guint watch; Rename this into something more sensible, e.g. bluetoothd_exit_watch > static guint adapter_added_watch; > static guint adapter_removed_watch; > static guint uuid_watch; > @@ -1111,6 +1129,10 @@ static int hfp_init() > > connection = ofono_dbus_get_connection(); > > + watch = g_dbus_add_service_watch(connection, BLUEZ_SERVICE, > + NULL, bluetooth_disconnect, NULL, NULL); > + > + Why the extra line? > adapter_added_watch = g_dbus_add_signal_watch(connection, NULL, NULL, > BLUEZ_MANAGER_INTERFACE, > "AdapterAdded", > @@ -1126,8 +1148,8 @@ static int hfp_init() > "PropertyChanged", > property_changed, NULL, NULL); > > - if (adapter_added_watch == 0 || adapter_removed_watch == 0|| > - uuid_watch == 0) { > + if (watch == 0 || adapter_added_watch == 0 || > + adapter_removed_watch == 0|| uuid_watch == 0) { > err = -EIO; > goto remove; > } > @@ -1150,6 +1172,7 @@ static int hfp_init() > return 0; > > remove: > + g_dbus_remove_watch(connection, watch); > g_dbus_remove_watch(connection, adapter_added_watch); > g_dbus_remove_watch(connection, adapter_removed_watch); > g_dbus_remove_watch(connection, uuid_watch); > @@ -1165,6 +1188,7 @@ remove: > > static void hfp_exit() > { > + g_dbus_remove_watch(connection, watch); > g_dbus_remove_watch(connection, adapter_added_watch); > g_dbus_remove_watch(connection, adapter_removed_watch); > g_dbus_remove_watch(connection, uuid_watch); > Regards, -Denis ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor 2010-02-15 19:26 ` [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor Gustavo F. Padovan 2010-02-15 19:26 ` [PATCH 3/3] hfp: remove modems if bluetoothd shutdowns without calling Release Gustavo F. Padovan @ 2010-02-15 19:36 ` Denis Kenzior 1 sibling, 0 replies; 6+ messages in thread From: Denis Kenzior @ 2010-02-15 19:36 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 1221 bytes --] Hi Gustavo, > --- > plugins/hfp.c | 17 +++++++++++++++++ > 1 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/plugins/hfp.c b/plugins/hfp.c > index 411cfc1..3776dc6 100644 > --- a/plugins/hfp.c > +++ b/plugins/hfp.c > @@ -482,6 +482,20 @@ error: > service_level_conn_failed(modem); > } > > +static gboolean hfp_fd_disconnected_cb(GIOChannel *chan, GIOCondition > cond, + struct ofono_modem *modem) > +{ > + if (cond & G_IO_NVAL) > + return FALSE; > + > + if (cond & (G_IO_ERR | G_IO_HUP)) { > + ofono_modem_set_powered(modem, FALSE); > + return FALSE; > + } > + > + return TRUE; > +} > + > /* either oFono or Phone could request SLC connection */ > static int service_level_connection(struct ofono_modem *modem, int fd) > { > @@ -498,6 +512,9 @@ static int service_level_connection(struct ofono_modem > *modem, int fd) return -EIO; > } > > + g_io_add_watch(io, G_IO_ERR | G_IO_HUP | G_IO_NVAL, > + (GIOFunc) hfp_fd_disconnected_cb, modem); > + Use g_at_chat_set_disconnect_function > syntax = g_at_syntax_new_gsmv1(); > chat = g_at_chat_new(io, syntax); > g_at_syntax_unref(syntax); > Regards, -Denis ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/3] hfp: remove duplicated ofono_modem_set_powered 2010-02-15 19:26 [PATCH 1/3] hfp: remove duplicated ofono_modem_set_powered Gustavo F. Padovan 2010-02-15 19:26 ` [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor Gustavo F. Padovan @ 2010-02-15 19:39 ` Denis Kenzior 1 sibling, 0 replies; 6+ messages in thread From: Denis Kenzior @ 2010-02-15 19:39 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 68 bytes --] Hi Gustavo, Patch has been applied, thanks. Regards, -Denis ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-02-15 19:41 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-02-15 19:26 [PATCH 1/3] hfp: remove duplicated ofono_modem_set_powered Gustavo F. Padovan 2010-02-15 19:26 ` [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor Gustavo F. Padovan 2010-02-15 19:26 ` [PATCH 3/3] hfp: remove modems if bluetoothd shutdowns without calling Release Gustavo F. Padovan 2010-02-15 19:41 ` Denis Kenzior 2010-02-15 19:36 ` [PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor Denis Kenzior 2010-02-15 19:39 ` [PATCH 1/3] hfp: remove duplicated ofono_modem_set_powered Denis Kenzior
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.