Re: [PATCH v2 1/2] Clear the Error property

2015-10-27 Thread Patrik Flykt
On Mon, 2015-10-26 at 20:41 -0700, Naveen Singh wrote:
> From: nasingh 
> 
> It is been seen that if the service state has transitioned to failure
> there is no way for it to get it back to idle. This fix allows the
> state to be transitioned back to idle as part of handling clear_property
> handler for error event.
> Refer Patrik's commit 251d95755dd144c8bd6d3e3bd5d6a47f891f938f which
> fixes the documentation for transitioning out of failure state.

Applied, thanks!

The nasingh-ym... email address did not resolve to a existing host, so I
had to remove the From: from the commit message.

Patrik

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: [PATCH v2 1/2] Clear the Error property

2015-10-26 Thread Naveen Singh
Hi Patrik
I had to move some functions in the file for the compilation to go through.
Regards
Naveen

On Mon, Oct 26, 2015 at 8:41 PM, Naveen Singh 
wrote:

> From: nasingh 
>
> It is been seen that if the service state has transitioned to failure
> there is no way for it to get it back to idle. This fix allows the
> state to be transitioned back to idle as part of handling clear_property
> handler for error event.
> Refer Patrik's commit 251d95755dd144c8bd6d3e3bd5d6a47f891f938f which
> fixes the documentation for transitioning out of failure state.
> ---
>  src/service.c | 74
> +--
>  1 file changed, 37 insertions(+), 37 deletions(-)
>
> diff --git a/src/service.c b/src/service.c
> index 02a6844..e33284d 100644
> --- a/src/service.c
> +++ b/src/service.c
> @@ -3516,6 +3516,41 @@ static void set_error(struct connman_service
> *service,
> DBUS_TYPE_STRING, &str);
>  }
>
> +static void remove_timeout(struct connman_service *service)
> +{
> +   if (service->timeout > 0) {
> +   g_source_remove(service->timeout);
> +   service->timeout = 0;
> +   }
> +}
> +
> +static void reply_pending(struct connman_service *service, int error)
> +{
> +   remove_timeout(service);
> +
> +   if (service->pending) {
> +   connman_dbus_reply_pending(service->pending, error, NULL);
> +   service->pending = NULL;
> +   }
> +
> +   if (service->provider_pending) {
> +   connman_dbus_reply_pending(service->provider_pending,
> +   error, service->path);
> +   service->provider_pending = NULL;
> +   }
> +}
> +
> +static void service_complete(struct connman_service *service)
> +{
> +   reply_pending(service, EIO);
> +
> +   if (service->connect_reason != CONNMAN_SERVICE_CONNECT_REASON_USER)
> +   __connman_service_auto_connect(service->connect_reason);
> +
> +   g_get_current_time(&service->modified);
> +   service_save(service);
> +}
> +
>
 static DBusMessage *clear_property(DBusConnection *conn,
> DBusMessage *msg, void *user_data)
>  {
> @@ -3530,8 +3565,8 @@ static DBusMessage *clear_property(DBusConnection
> *conn,
> if (g_str_equal(name, "Error")) {
> set_error(service, CONNMAN_SERVICE_ERROR_UNKNOWN);
>
> -   g_get_current_time(&service->modified);
> -   service_save(service);
> +   __connman_service_clear_error(service);
> +   service_complete(service);
> } else
> return __connman_error_invalid_property(msg);
>
> @@ -3849,30 +3884,6 @@ static void vpn_auto_connect(void)
> g_timeout_add_seconds(0, run_vpn_auto_connect, NULL);
>  }
>
> -static void remove_timeout(struct connman_service *service)
> -{
> -   if (service->timeout > 0) {
> -   g_source_remove(service->timeout);
> -   service->timeout = 0;
> -   }
> -}
> -
> -static void reply_pending(struct connman_service *service, int error)
> -{
> -   remove_timeout(service);
> -
> -   if (service->pending) {
> -   connman_dbus_reply_pending(service->pending, error, NULL);
> -   service->pending = NULL;
> -   }
> -
> -   if (service->provider_pending) {
> -   connman_dbus_reply_pending(service->provider_pending,
> -   error, service->path);
> -   service->provider_pending = NULL;
> -   }
> -}
> -
>  bool
>  __connman_service_is_provider_pending(struct connman_service *service)
>  {
> @@ -5032,17 +5043,6 @@ void __connman_service_set_search_domains(struct
> connman_service *service,
> searchdomain_add_all(service);
>  }
>
> -static void service_complete(struct connman_service *service)
> -{
> -   reply_pending(service, EIO);
> -
> -   if (service->connect_reason != CONNMAN_SERVICE_CONNECT_REASON_USER)
> -   __connman_service_auto_connect(service->connect_reason);
> -
> -   g_get_current_time(&service->modified);
> -   service_save(service);
> -}
> -
>  static void report_error_cb(void *user_context, bool retry,
> void *user_data)
>  {
> --
> 2.6.0.rc2.230.g3dd15c0
>
> ___
> connman mailing list
> connman@connman.net
> https://lists.connman.net/mailman/listinfo/connman
>
___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman