[PATCH 2/3] hfp: add watch to trigger HUP of the file descriptor

Denis Kenzior denkenz at gmail.com
Mon Feb 15 11:36:06 PST 2010


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


More information about the ofono mailing list