Hello Marcel,
On Tue, 2011-01-11 at 22:51 -0800, ext Marcel Holtmann wrote:
> >
> > -void ofono_gprs_register(struct ofono_gprs *gprs)
> > +static void ofono_gprs_finish_register(struct ofono_gprs *gprs)
> > {
> > DBusConnection *conn = ofono_dbus_get_connection();
> > struct ofono_modem *modem = __ofono_atom_get_modem(gprs->atom);
> > const char *path = __ofono_atom_get_path(gprs->atom);
> > struct ofono_atom *netreg_atom;
> > - struct ofono_atom *sim_atom;
> > +
> > + if (gprs->contexts == NULL) /* Automatic provisioning failed */
> > + add_context(gprs, NULL, OFONO_GPRS_CONTEXT_TYPE_INTERNET);
>
> so I see a potential race here between the UI trying to provision and us
> trying to provision.
>
> We don't wanna end up with duplicated contexts here. Any ideas on how we
> could prevent that nicely? Or should we just fail any attempts to create
> new contexts if provisioning is still ongoing?
Code continues there with:
if (!g_dbus_register_interface(conn, path,
OFONO_CONNECTION_MANAGER_INTERFACE,
manager_methods, manager_signals, NULL,
gprs, NULL)) {
ofono_error("Could not create %s interface",
OFONO_CONNECTION_MANAGER_INTERFACE);
return;
}
ofono_modem_add_interface(modem,
OFONO_CONNECTION_MANAGER_INTERFACE);
Patch rearranges the initial context creation and interface
registration, so there is no DBUS interface for UI to use until
provisioning is ready. Or have misunderstood something?
--Jukka
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono