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 ofono@ofono.org http://lists.ofono.org/listinfo/ofono