Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(314)

Unified Diff: src/service.c

Issue 5167004: Enhance portal check code to return connectivity_state (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/flimflam.git@master
Patch Set: Maintain a little backward compatibility Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « plugins/portal_check.c ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/service.c
diff --git a/src/service.c b/src/service.c
index dd17cc9a0f871bb888164dfd4d54809471a66d30..881c0eef682ab7851c0c8ab904bb72866bb6e9e8 100644
--- a/src/service.c
+++ b/src/service.c
@@ -51,6 +51,7 @@ struct connman_service {
enum connman_service_security security;
enum connman_service_state state;
enum connman_service_error error;
+ enum connman_service_connectivity_state connectivity_state;
connman_uint8_t strength;
connman_bool_t favorite;
connman_bool_t hidden;
@@ -75,7 +76,6 @@ struct connman_service {
enum connman_network_activation_state activation_state;
enum connman_network_cellular_technology network_technology;
enum connman_network_cellular_roaming_state roaming_state;
- connman_bool_t restricted_pool;
} cellular;
struct {
unsigned int wep_key_len;
@@ -428,6 +428,22 @@ static const char *roaming_state2string(
return NULL;
}
+static const char *connectivity_state2string(
+ enum connman_service_connectivity_state connectivity)
+{
+ switch(connectivity) {
+ case CONNMAN_SERVICE_CONNECTIVITY_STATE_UNKNOWN:
+ return "unknown";
+ case CONNMAN_SERVICE_CONNECTIVITY_STATE_UNRESTRICTED:
+ return "unrestricted";
+ case CONNMAN_SERVICE_CONNECTIVITY_STATE_RESTRICTED:
+ return "restricted";
+ case CONNMAN_SERVICE_CONNECTIVITY_STATE_NONE:
+ return "none";
+ }
+ return NULL;
+}
+
static struct connman_service *get_active_service(void)
{
struct connman_service *service;
@@ -669,6 +685,11 @@ static DBusMessage *get_properties(DBusConnection *conn,
connman_dbus_dict_append_variant(&dict, "Name",
DBUS_TYPE_STRING, &service->name);
+ str = connectivity_state2string(service->connectivity_state);
+ if (str != NULL)
+ connman_dbus_dict_append_variant(&dict, "ConnectivityState",
+ DBUS_TYPE_STRING, &str);
+
device = connman_service_get_device(service);
if (device != NULL) {
const char *path = connman_device_get_path(device);
@@ -729,9 +750,6 @@ static DBusMessage *get_properties(DBusConnection *conn,
"Cellular.UsageUrl", DBUS_TYPE_STRING,
&service->cellular.usage_url);
}
- connman_dbus_dict_append_variant(&dict,
- "Cellular.RestrictedPool", DBUS_TYPE_BOOLEAN,
- &service->cellular.restricted_pool);
break;
case CONNMAN_SERVICE_TYPE_WIFI:
connman_dbus_dict_append_variant(&dict, "WiFi.HiddenSSID",
@@ -1607,17 +1625,32 @@ void __connman_service_set_registration_info(
}
}
-void connman_service_set_restricted_pool(struct connman_service *service,
- connman_bool_t restricted)
+void connman_service_set_connectivity_state(struct connman_service *service,
+ enum connman_service_connectivity_state connectivity)
{
- connman_bool_t orestricted = service->cellular.restricted_pool;
- service->cellular.restricted_pool = restricted;
- if (orestricted != restricted)
+ enum connman_service_connectivity_state
+ oconnectivity = service->connectivity_state;
+ const char *state_str = connectivity_state2string(connectivity);
+
+ service->connectivity_state = connectivity;
+ if (oconnectivity != connectivity) {
+ /* TODO(jglasgow): remove once chrome is updated */
+ gboolean restricted =
+ (connectivity == CONNMAN_SERVICE_CONNECTIVITY_STATE_RESTRICTED) ||
+ (connectivity == CONNMAN_SERVICE_CONNECTIVITY_STATE_NONE);
+ (void) connman_dbus_send_property_changed_variant(
+ service->path,
+ CONNMAN_SERVICE_INTERFACE,
+ "Cellular.RestrictedPool",
+ DBUS_TYPE_BOOLEAN, &restricted);
+ /* TODO(jglasgow): end of deprecated code */
+
(void) connman_dbus_send_property_changed_variant(
service->path,
CONNMAN_SERVICE_INTERFACE,
- "Cellular.RestrictedPool",
- DBUS_TYPE_BOOLEAN, &restricted);
+ "ConnectivityState",
+ DBUS_TYPE_STRING, &state_str);
+ }
}
static void remove_timeout(struct connman_service *service)
« no previous file with comments | « plugins/portal_check.c ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698