From: Denis Kenzior Date: Mon, 26 Oct 2009 21:54:18 +0000 (-0500) Subject: Add a master function for updating attached state X-Git-Tag: 0.9~64 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e0603f0c68d133374cf0e6fb05bb3e105e5546a4;p=platform%2Fupstream%2Fofono.git Add a master function for updating attached state --- diff --git a/src/gprs.c b/src/gprs.c index e034654..8443f1b 100644 --- a/src/gprs.c +++ b/src/gprs.c @@ -512,23 +512,27 @@ static char **gprs_contexts_path_list(GSList *context_list) return objlist; } -static void gprs_set_attached(struct ofono_gprs *gprs) +static void gprs_attached_update(struct ofono_gprs *gprs) { DBusConnection *conn = ofono_dbus_get_connection(); const char *path; + ofono_bool_t attached; dbus_bool_t value; - ofono_bool_t attached = gprs->driver_attached && - !(gprs->flags & GPRS_FLAG_DETACHED_AFTER_ROAMING); - if (attached != gprs->attached) { - gprs->attached = attached; + attached = gprs->driver_attached && + (gprs->status == NETWORK_REGISTRATION_STATUS_REGISTERED || + gprs->status == NETWORK_REGISTRATION_STATUS_ROAMING); - path = __ofono_atom_get_path(gprs->atom); - value = attached; - ofono_dbus_signal_property_changed(conn, path, - DATA_CONNECTION_MANAGER_INTERFACE, - "Attached", DBUS_TYPE_BOOLEAN, &value); - } + if (attached == gprs->attached) + return; + + gprs->attached = attached; + + path = __ofono_atom_get_path(gprs->atom); + value = attached; + ofono_dbus_signal_property_changed(conn, path, + DATA_CONNECTION_MANAGER_INTERFACE, + "Attached", DBUS_TYPE_BOOLEAN, &value); } static void gprs_attach_callback(const struct ofono_error *error, void *data)