static gboolean key_value_foreach (const gchar *key, const gchar *value, ParseKeyValueContext *ctx) { return mm_bearer_properties_consume_string (ctx->properties, key, value, &ctx->error); }
static gboolean key_value_foreach (const gchar *key, const gchar *value, ParseKeyValueContext *ctx) { /* First, check if we can consume this as bearer properties */ if (mm_bearer_properties_consume_string (ctx->properties->priv->bearer_properties, key, value, NULL)) return TRUE; if (g_str_equal (key, PROPERTY_PIN)) mm_simple_connect_properties_set_pin (ctx->properties, value); else if (g_str_equal (key, PROPERTY_OPERATOR_ID)) mm_simple_connect_properties_set_operator_id (ctx->properties, value); else if (g_str_equal (key, PROPERTY_BANDS)) { MMModemBand *bands = NULL; guint n_bands = 0; mm_common_get_bands_from_string (value, &bands, &n_bands, &ctx->error); if (!ctx->error) { mm_simple_connect_properties_set_bands (ctx->properties, bands, n_bands); g_free (bands); } } else if (g_str_equal (key, PROPERTY_ALLOWED_MODES)) { ctx->allowed_modes_str = g_strdup (value); } else if (g_str_equal (key, PROPERTY_PREFERRED_MODE)) { ctx->preferred_mode_str = g_strdup (value); } else { ctx->error = g_error_new (MM_CORE_ERROR, MM_CORE_ERROR_INVALID_ARGS, "Invalid properties string, unexpected key '%s'", key); } return !ctx->error; }