No roaming policies need to be enforced per GPRS context rather than
for the whole GPRS service. Otherwise, you would not be able to receive
an MMS or even register to the IMS SIP while roaming.
---
 src/gprs.c |   51 +++------------------------------------------------
 1 files changed, 3 insertions(+), 48 deletions(-)

diff --git a/src/gprs.c b/src/gprs.c
index 5ea864c..b6003f7 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -76,7 +76,6 @@ struct ofono_gprs {
        GSList *contexts;
        ofono_bool_t attached;
        ofono_bool_t driver_attached;
-       ofono_bool_t roaming_allowed;
        ofono_bool_t powered;
        ofono_bool_t suspended;
        int status;
@@ -1426,10 +1425,8 @@ static void gprs_netreg_update(struct ofono_gprs *gprs)
 {
        ofono_bool_t attach;
 
-       attach = gprs->netreg_status == NETWORK_REGISTRATION_STATUS_REGISTERED;
-
-       attach = attach || (gprs->roaming_allowed &&
-               gprs->netreg_status == NETWORK_REGISTRATION_STATUS_ROAMING);
+       attach = gprs->netreg_status == NETWORK_REGISTRATION_STATUS_REGISTERED
+               || NETWORK_REGISTRATION_STATUS_ROAMING;
 
        attach = attach && gprs->powered;
 
@@ -1492,10 +1489,6 @@ static DBusMessage *gprs_get_properties(DBusConnection 
*conn,
                                        DBUS_TYPE_STRING, &bearer);
        }
 
-       value = gprs->roaming_allowed;
-       ofono_dbus_dict_append(&dict, "RoamingAllowed",
-                               DBUS_TYPE_BOOLEAN, &value);
-
        value = gprs->powered;
        ofono_dbus_dict_append(&dict, "Powered", DBUS_TYPE_BOOLEAN, &value);
 
@@ -1537,27 +1530,7 @@ static DBusMessage *gprs_set_property(DBusConnection 
*conn,
 
        dbus_message_iter_recurse(&iter, &var);
 
-       if (!strcmp(property, "RoamingAllowed")) {
-               if (dbus_message_iter_get_arg_type(&var) != DBUS_TYPE_BOOLEAN)
-                       return __ofono_error_invalid_args(msg);
-
-               dbus_message_iter_get_basic(&var, &value);
-
-               if (gprs->roaming_allowed == (ofono_bool_t) value)
-                       return dbus_message_new_method_return(msg);
-
-               gprs->roaming_allowed = value;
-
-               if (gprs->settings) {
-                       g_key_file_set_integer(gprs->settings, SETTINGS_GROUP,
-                                               "RoamingAllowed",
-                                               gprs->roaming_allowed);
-                       storage_sync(gprs->imsi, SETTINGS_STORE,
-                                       gprs->settings);
-               }
-
-               gprs_netreg_update(gprs);
-       } else if (!strcmp(property, "Powered")) {
+       if (!strcmp(property, "Powered")) {
                if (gprs->driver->set_attached == NULL)
                        return __ofono_error_not_implemented(msg);
 
@@ -2000,10 +1973,6 @@ void ofono_gprs_status_notify(struct ofono_gprs *gprs, 
int status)
        if (gprs->powered == FALSE)
                goto detach;
 
-       if (gprs->roaming_allowed == FALSE &&
-                       status == NETWORK_REGISTRATION_STATUS_ROAMING)
-               goto detach;
-
        gprs->driver_attached = TRUE;
        gprs_attached_update(gprs);
 
@@ -2499,7 +2468,6 @@ static void gprs_load_settings(struct ofono_gprs *gprs, 
const char *imsi)
        /*
         * If any error occurs, simply switch to defaults.
         * Default to Powered = True
-        * and RoamingAllowed = False
         */
        if (error) {
                gprs->powered = TRUE;
@@ -2507,19 +2475,6 @@ static void gprs_load_settings(struct ofono_gprs *gprs, 
const char *imsi)
                                        "Powered", gprs->powered);
        }
 
-       error = NULL;
-       gprs->roaming_allowed = g_key_file_get_boolean(gprs->settings,
-                                                       SETTINGS_GROUP,
-                                                       "RoamingAllowed",
-                                                       &error);
-
-       if (error) {
-               gprs->roaming_allowed = FALSE;
-               g_key_file_set_boolean(gprs->settings, SETTINGS_GROUP,
-                                       "RoamingAllowed",
-                                       gprs->roaming_allowed);
-       }
-
        groups = g_key_file_get_groups(gprs->settings, NULL);
 
        for (i = 0; groups[i]; i++) {
-- 
1.7.1

_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to