On Mon, 14 Jul 2014 11:20:39 Jukka Rissanen wrote:
> On ma, 2014-07-14 at 10:45 +1000, Aaron McCarthy wrote:
> > The AutoConnect property is always reported as false if Favorite is
> > false. Emit property changed for AutoConnect when Favorite changes.
> > ---
> > 
> >  src/service.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/src/service.c b/src/service.c
> > index 9406bc3..899f981 100644
> > --- a/src/service.c
> > +++ b/src/service.c
> > @@ -4885,6 +4885,9 @@ int __connman_service_set_favorite_delayed(struct
> > connman_service *service,> 
> >     favorite_changed(service);
> > 
> > +   if (service->autoconnect)
> > +           autoconnect_changed(service);
> > +
> 
> There is a problem here. If we set the Favorite to false and if
> autoconnect is still true, then a signal would be set that tells that
> service autoconnect is still true. But we will never autoconnect to this
> service in this case because it is not favorite any more.
> 
> What kind of use case you had in mind here?
> Why is it not enough to follow the favorite flag?

The problem is that we are displaying the state of the AutoConnect property in 
the UI. The application is watching for property changes for a particular 
service. When the Favorite property changes (causing a corresponding change to 
AutoConnect) the application gets notified of the Favorite property change but 
not the AutoConnect property change. Explicitly requesting the value of the 
AutoConnect property returns the expected value.

On further investigation the AutoConnect value reported by the DBus 
GetProperties method and autoconnect_changed() are different when Favorite is 
false. I've fixed the patch so that the value reported by both are the same.

Cheers,

-- 
Aaron McCarthy
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to