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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « plugins/portal_check.c ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * 2 *
3 * Connection Manager 3 * Connection Manager
4 * 4 *
5 * Copyright (C) 2007-2009 Intel Corporation. All rights reserved. 5 * Copyright (C) 2007-2009 Intel Corporation. All rights reserved.
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as 8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 * 10 *
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 struct connman_service { 45 struct connman_service {
46 gint refcount; 46 gint refcount;
47 char *identifier; 47 char *identifier;
48 char *path; 48 char *path;
49 enum connman_service_type type; 49 enum connman_service_type type;
50 enum connman_service_mode mode; 50 enum connman_service_mode mode;
51 enum connman_service_security security; 51 enum connman_service_security security;
52 enum connman_service_state state; 52 enum connman_service_state state;
53 enum connman_service_error error; 53 enum connman_service_error error;
54 enum connman_service_connectivity_state connectivity_state;
54 connman_uint8_t strength; 55 connman_uint8_t strength;
55 connman_bool_t favorite; 56 connman_bool_t favorite;
56 connman_bool_t hidden; 57 connman_bool_t hidden;
57 connman_bool_t ignore; 58 connman_bool_t ignore;
58 connman_bool_t autoconnect; 59 connman_bool_t autoconnect;
59 connman_bool_t userconnect; 60 connman_bool_t userconnect;
60 connman_bool_t active; 61 connman_bool_t active;
61 GTimeVal modified; 62 GTimeVal modified;
62 char *name; 63 char *name;
63 char *passphrase; 64 char *passphrase;
64 char *identity; 65 char *identity;
65 char *certpath; 66 char *certpath;
66 char *authpath; 67 char *authpath;
67 char *profile; 68 char *profile;
68 69
69 /* TODO(sleffler) overlay storage */ 70 /* TODO(sleffler) overlay storage */
70 struct { 71 struct {
71 char *operator_name; 72 char *operator_name;
72 char *operator_code; 73 char *operator_code;
73 char *olp_url; 74 char *olp_url;
74 char *usage_url; 75 char *usage_url;
75 enum connman_network_activation_state activation_state; 76 enum connman_network_activation_state activation_state;
76 enum connman_network_cellular_technology network_technology; 77 enum connman_network_cellular_technology network_technology;
77 enum connman_network_cellular_roaming_state roaming_state; 78 enum connman_network_cellular_roaming_state roaming_state;
78 connman_bool_t restricted_pool;
79 } cellular; 79 } cellular;
80 struct { 80 struct {
81 unsigned int wep_key_len; 81 unsigned int wep_key_len;
82 connman_uint8_t wep_key_idx; 82 connman_uint8_t wep_key_idx;
83 connman_uint8_t wep_key_matter[MAX_WEP_KEYSPACE]; 83 connman_uint8_t wep_key_matter[MAX_WEP_KEYSPACE];
84 connman_bool_t hidden_ssid; 84 connman_bool_t hidden_ssid;
85 } wifi; 85 } wifi;
86 86
87 struct connman_device *device; 87 struct connman_device *device;
88 struct connman_network *network; 88 struct connman_network *network;
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 case CONNMAN_NETWORK_ROAMING_STATE_UNKNOWN: 421 case CONNMAN_NETWORK_ROAMING_STATE_UNKNOWN:
422 return "unknown"; 422 return "unknown";
423 case CONNMAN_NETWORK_ROAMING_STATE_HOME: 423 case CONNMAN_NETWORK_ROAMING_STATE_HOME:
424 return "home"; 424 return "home";
425 case CONNMAN_NETWORK_ROAMING_STATE_ROAMING: 425 case CONNMAN_NETWORK_ROAMING_STATE_ROAMING:
426 return "roaming"; 426 return "roaming";
427 } 427 }
428 return NULL; 428 return NULL;
429 } 429 }
430 430
431 static const char *connectivity_state2string(
432 enum connman_service_connectivity_state connectivity)
433 {
434 switch(connectivity) {
435 case CONNMAN_SERVICE_CONNECTIVITY_STATE_UNKNOWN:
436 return "unknown";
437 case CONNMAN_SERVICE_CONNECTIVITY_STATE_UNRESTRICTED:
438 return "unrestricted";
439 case CONNMAN_SERVICE_CONNECTIVITY_STATE_RESTRICTED:
440 return "restricted";
441 case CONNMAN_SERVICE_CONNECTIVITY_STATE_NONE:
442 return "none";
443 }
444 return NULL;
445 }
446
431 static struct connman_service *get_active_service(void) 447 static struct connman_service *get_active_service(void)
432 { 448 {
433 struct connman_service *service; 449 struct connman_service *service;
434 GSequenceIter *iter; 450 GSequenceIter *iter;
435 451
436 iter = g_sequence_get_begin_iter(service_list); 452 iter = g_sequence_get_begin_iter(service_list);
437 453
438 if (g_sequence_iter_is_end(iter) == TRUE) { 454 if (g_sequence_iter_is_end(iter) == TRUE) {
439 _DBG_SERVICE("no services"); 455 _DBG_SERVICE("no services");
440 return NULL; 456 return NULL;
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 connman_dbus_dict_append_variant(&dict, "AutoConnect", 678 connman_dbus_dict_append_variant(&dict, "AutoConnect",
663 DBUS_TYPE_BOOLEAN, &service->favorite); 679 DBUS_TYPE_BOOLEAN, &service->favorite);
664 680
665 connman_dbus_dict_append_variant(&dict, "IsActive", 681 connman_dbus_dict_append_variant(&dict, "IsActive",
666 DBUS_TYPE_BOOLEAN, &service->active); 682 DBUS_TYPE_BOOLEAN, &service->active);
667 683
668 if (service->name != NULL) 684 if (service->name != NULL)
669 connman_dbus_dict_append_variant(&dict, "Name", 685 connman_dbus_dict_append_variant(&dict, "Name",
670 DBUS_TYPE_STRING, &service->name); 686 DBUS_TYPE_STRING, &service->name);
671 687
688 str = connectivity_state2string(service->connectivity_state);
689 if (str != NULL)
690 connman_dbus_dict_append_variant(&dict, "ConnectivityState",
691 DBUS_TYPE_STRING, &str);
692
672 device = connman_service_get_device(service); 693 device = connman_service_get_device(service);
673 if (device != NULL) { 694 if (device != NULL) {
674 const char *path = connman_device_get_path(device); 695 const char *path = connman_device_get_path(device);
675 if (path != NULL) 696 if (path != NULL)
676 connman_dbus_dict_append_variant(&dict, "Device", 697 connman_dbus_dict_append_variant(&dict, "Device",
677 DBUS_TYPE_OBJECT_PATH, &path); 698 DBUS_TYPE_OBJECT_PATH, &path);
678 } 699 }
679 700
680 switch (service->type) { 701 switch (service->type) {
681 case CONNMAN_SERVICE_TYPE_UNKNOWN: 702 case CONNMAN_SERVICE_TYPE_UNKNOWN:
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 if (service->cellular.olp_url != NULL) { 743 if (service->cellular.olp_url != NULL) {
723 connman_dbus_dict_append_variant(&dict, 744 connman_dbus_dict_append_variant(&dict,
724 "Cellular.OlpUrl", DBUS_TYPE_STRING, 745 "Cellular.OlpUrl", DBUS_TYPE_STRING,
725 &service->cellular.olp_url); 746 &service->cellular.olp_url);
726 } 747 }
727 if (service->cellular.usage_url != NULL) { 748 if (service->cellular.usage_url != NULL) {
728 connman_dbus_dict_append_variant(&dict, 749 connman_dbus_dict_append_variant(&dict,
729 "Cellular.UsageUrl", DBUS_TYPE_STRING, 750 "Cellular.UsageUrl", DBUS_TYPE_STRING,
730 &service->cellular.usage_url); 751 &service->cellular.usage_url);
731 } 752 }
732 connman_dbus_dict_append_variant(&dict,
733 "Cellular.RestrictedPool", DBUS_TYPE_BOOLEAN,
734 &service->cellular.restricted_pool);
735 break; 753 break;
736 case CONNMAN_SERVICE_TYPE_WIFI: 754 case CONNMAN_SERVICE_TYPE_WIFI:
737 connman_dbus_dict_append_variant(&dict, "WiFi.HiddenSSID", 755 connman_dbus_dict_append_variant(&dict, "WiFi.HiddenSSID",
738 DBUS_TYPE_BOOLEAN, &service->wifi.hidden_ssid); 756 DBUS_TYPE_BOOLEAN, &service->wifi.hidden_ssid);
739 757
740 if (service->network != NULL) { 758 if (service->network != NULL) {
741 connman_uint16_t frequency; 759 connman_uint16_t frequency;
742 enum connman_network_phymode phymode; 760 enum connman_network_phymode phymode;
743 761
744 frequency = connman_network_get_uint16(service->network, 762 frequency = connman_network_get_uint16(service->network,
(...skipping 855 matching lines...) Expand 10 before | Expand all | Expand 10 after
1600 } 1618 }
1601 if (oroam != roaming_state && roam_str != NULL) { 1619 if (oroam != roaming_state && roam_str != NULL) {
1602 (void) connman_dbus_send_property_changed_variant( 1620 (void) connman_dbus_send_property_changed_variant(
1603 service->path, 1621 service->path,
1604 CONNMAN_SERVICE_INTERFACE, 1622 CONNMAN_SERVICE_INTERFACE,
1605 "Cellular.RoamingState", 1623 "Cellular.RoamingState",
1606 DBUS_TYPE_STRING, &roam_str); 1624 DBUS_TYPE_STRING, &roam_str);
1607 } 1625 }
1608 } 1626 }
1609 1627
1610 void connman_service_set_restricted_pool(struct connman_service *service, 1628 void connman_service_set_connectivity_state(struct connman_service *service,
1611 » » » » » connman_bool_t restricted) 1629 enum connman_service_connectivity_state connectivity)
1612 { 1630 {
1613 » connman_bool_t orestricted = service->cellular.restricted_pool; 1631 » enum connman_service_connectivity_state
1614 » service->cellular.restricted_pool = restricted; 1632 » » oconnectivity = service->connectivity_state;
1615 » if (orestricted != restricted) 1633 » const char *state_str = connectivity_state2string(connectivity);
1634
1635 » service->connectivity_state = connectivity;
1636 » if (oconnectivity != connectivity) {
1637 » » /* TODO(jglasgow): remove once chrome is updated */
1638 » » gboolean restricted =
1639 » » » (connectivity == CONNMAN_SERVICE_CONNECTIVITY_STATE_REST RICTED) ||
1640 » » » (connectivity == CONNMAN_SERVICE_CONNECTIVITY_STATE_NONE );
1641 » » (void) connman_dbus_send_property_changed_variant(
1642 » » » service->path,
1643 » » » CONNMAN_SERVICE_INTERFACE,
1644 » » » "Cellular.RestrictedPool",
1645 » » » DBUS_TYPE_BOOLEAN, &restricted);
1646 » » /* TODO(jglasgow): end of deprecated code */
1647
1616 (void) connman_dbus_send_property_changed_variant( 1648 (void) connman_dbus_send_property_changed_variant(
1617 service->path, 1649 service->path,
1618 CONNMAN_SERVICE_INTERFACE, 1650 CONNMAN_SERVICE_INTERFACE,
1619 » » » » "Cellular.RestrictedPool", 1651 » » » » "ConnectivityState",
1620 » » » » DBUS_TYPE_BOOLEAN, &restricted); 1652 » » » » DBUS_TYPE_STRING, &state_str);
1653 » }
1621 } 1654 }
1622 1655
1623 static void remove_timeout(struct connman_service *service) 1656 static void remove_timeout(struct connman_service *service)
1624 { 1657 {
1625 if (service->timeout > 0) { 1658 if (service->timeout > 0) {
1626 gboolean ret = g_source_remove(service->timeout); 1659 gboolean ret = g_source_remove(service->timeout);
1627 DBG(DBG_SERVICE | DBG_WIFI, "service %p timeout %d ret %d", 1660 DBG(DBG_SERVICE | DBG_WIFI, "service %p timeout %d ret %d",
1628 service, service->timeout, ret); 1661 service, service->timeout, ret);
1629 1662
1630 service->timeout = 0; 1663 service->timeout = 0;
(...skipping 2323 matching lines...) Expand 10 before | Expand all | Expand 10 after
3954 service_list = NULL; 3987 service_list = NULL;
3955 3988
3956 g_hash_table_destroy(service_hash); 3989 g_hash_table_destroy(service_hash);
3957 service_hash = NULL; 3990 service_hash = NULL;
3958 3991
3959 connman_storage_unregister(&service_storage); 3992 connman_storage_unregister(&service_storage);
3960 connman_notifier_unregister(&service_notifier); 3993 connman_notifier_unregister(&service_notifier);
3961 3994
3962 dbus_connection_unref(connection); 3995 dbus_connection_unref(connection);
3963 } 3996 }
OLDNEW
« 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