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

Side by Side Diff: chrome/browser/chromeos/cros/network_library.h

Issue 8759014: Add ONC VPN support for OpenVPN and L2TP/IPsec VPNs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: address mnissler comments and fix a bunch of test memleaks Created 9 years 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_
6 #define CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_ 6 #define CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 PROPERTY_INDEX_FIRMWARE_REVISION, 83 PROPERTY_INDEX_FIRMWARE_REVISION,
84 PROPERTY_INDEX_FOUND_NETWORKS, 84 PROPERTY_INDEX_FOUND_NETWORKS,
85 PROPERTY_INDEX_GUID, 85 PROPERTY_INDEX_GUID,
86 PROPERTY_INDEX_HARDWARE_REVISION, 86 PROPERTY_INDEX_HARDWARE_REVISION,
87 PROPERTY_INDEX_HIDDEN_SSID, 87 PROPERTY_INDEX_HIDDEN_SSID,
88 PROPERTY_INDEX_HOME_PROVIDER, 88 PROPERTY_INDEX_HOME_PROVIDER,
89 PROPERTY_INDEX_HOST, 89 PROPERTY_INDEX_HOST,
90 PROPERTY_INDEX_IDENTITY, 90 PROPERTY_INDEX_IDENTITY,
91 PROPERTY_INDEX_IMEI, 91 PROPERTY_INDEX_IMEI,
92 PROPERTY_INDEX_IMSI, 92 PROPERTY_INDEX_IMSI,
93 PROPERTY_INDEX_IPSEC_AUTHENTICATIONTYPE,
94 PROPERTY_INDEX_IPSEC_IKEVERSION,
93 PROPERTY_INDEX_IS_ACTIVE, 95 PROPERTY_INDEX_IS_ACTIVE,
94 PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS, 96 PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS,
95 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID, 97 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID,
96 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_SLOT, 98 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_SLOT,
97 PROPERTY_INDEX_L2TPIPSEC_PASSWORD, 99 PROPERTY_INDEX_L2TPIPSEC_PASSWORD,
98 PROPERTY_INDEX_L2TPIPSEC_PIN, 100 PROPERTY_INDEX_L2TPIPSEC_PIN,
99 PROPERTY_INDEX_L2TPIPSEC_PSK, 101 PROPERTY_INDEX_L2TPIPSEC_PSK,
100 PROPERTY_INDEX_L2TPIPSEC_USER, 102 PROPERTY_INDEX_L2TPIPSEC_USER,
101 PROPERTY_INDEX_L2TPIPSEC_GROUP_NAME, 103 PROPERTY_INDEX_L2TPIPSEC_GROUP_NAME,
102 PROPERTY_INDEX_MANUFACTURER, 104 PROPERTY_INDEX_MANUFACTURER,
103 PROPERTY_INDEX_MDN, 105 PROPERTY_INDEX_MDN,
104 PROPERTY_INDEX_MEID, 106 PROPERTY_INDEX_MEID,
105 PROPERTY_INDEX_MIN, 107 PROPERTY_INDEX_MIN,
106 PROPERTY_INDEX_MODE, 108 PROPERTY_INDEX_MODE,
107 PROPERTY_INDEX_MODEL_ID, 109 PROPERTY_INDEX_MODEL_ID,
108 PROPERTY_INDEX_NAME, 110 PROPERTY_INDEX_NAME,
109 PROPERTY_INDEX_NETWORKS, 111 PROPERTY_INDEX_NETWORKS,
110 PROPERTY_INDEX_NETWORK_TECHNOLOGY, 112 PROPERTY_INDEX_NETWORK_TECHNOLOGY,
111 PROPERTY_INDEX_OFFLINE_MODE, 113 PROPERTY_INDEX_OFFLINE_MODE,
114 PROPERTY_INDEX_OLP,
115 PROPERTY_INDEX_ONC_CLIENT_CERT_PATTERN, // Used internally for ONC parsing
116 PROPERTY_INDEX_ONC_CLIENT_CERT_REF, // Used internally for ONC parsing
117 PROPERTY_INDEX_ONC_CLIENT_CERT_TYPE, // Used internally for ONC parsing
118 PROPERTY_INDEX_ONC_IPSEC, // Used internally for ONC parsing
119 PROPERTY_INDEX_ONC_L2TP, // Used internally for ONC parsing
120 PROPERTY_INDEX_ONC_OPENVPN, // Used internally for ONC parsing
121 PROPERTY_INDEX_ONC_REMOVE, // Used internally for ONC parsing
122 PROPERTY_INDEX_ONC_WIFI, // Used internally for ONC parsing
123 PROPERTY_INDEX_ONC_VPN, // Used internally for ONC parsing
124 PROPERTY_INDEX_OPEN_VPN_AUTH,
125 PROPERTY_INDEX_OPEN_VPN_AUTHRETRY,
126 PROPERTY_INDEX_OPEN_VPN_AUTHNOCACHE,
127 PROPERTY_INDEX_OPEN_VPN_AUTHUSERPASS,
128 PROPERTY_INDEX_OPEN_VPN_CACERT,
129 PROPERTY_INDEX_OPEN_VPN_CERT,
130 PROPERTY_INDEX_OPEN_VPN_CIPHER,
131 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID,
132 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_SLOT,
133 PROPERTY_INDEX_OPEN_VPN_COMPLZO,
134 PROPERTY_INDEX_OPEN_VPN_COMPNOADAPT,
135 PROPERTY_INDEX_OPEN_VPN_KEYDIRECTION,
136 PROPERTY_INDEX_OPEN_VPN_MGMT_ENABLE,
137 PROPERTY_INDEX_OPEN_VPN_NSCERTTYPE,
138 PROPERTY_INDEX_OPEN_VPN_OTP,
139 PROPERTY_INDEX_OPEN_VPN_PASSWORD,
140 PROPERTY_INDEX_OPEN_VPN_PIN,
141 PROPERTY_INDEX_OPEN_VPN_PORT,
142 PROPERTY_INDEX_OPEN_VPN_PROTO,
143 PROPERTY_INDEX_OPEN_VPN_PKCS11_PROVIDER,
144 PROPERTY_INDEX_OPEN_VPN_PUSHPEERINFO,
145 PROPERTY_INDEX_OPEN_VPN_REMOTECERTEKU,
146 PROPERTY_INDEX_OPEN_VPN_REMOTECERTKU,
147 PROPERTY_INDEX_OPEN_VPN_REMOTECERTTLS,
148 PROPERTY_INDEX_OPEN_VPN_RENEGSEC,
149 PROPERTY_INDEX_OPEN_VPN_SERVERPOLLTIMEOUT,
150 PROPERTY_INDEX_OPEN_VPN_SHAPER,
151 PROPERTY_INDEX_OPEN_VPN_STATICCHALLENGE,
152 PROPERTY_INDEX_OPEN_VPN_TLSAUTHCONTENTS,
153 PROPERTY_INDEX_OPEN_VPN_TLSREMOTE,
154 PROPERTY_INDEX_OPEN_VPN_USER,
112 PROPERTY_INDEX_OPERATOR_CODE, 155 PROPERTY_INDEX_OPERATOR_CODE,
113 PROPERTY_INDEX_OPERATOR_NAME, 156 PROPERTY_INDEX_OPERATOR_NAME,
114 PROPERTY_INDEX_PASSPHRASE, 157 PROPERTY_INDEX_PASSPHRASE,
115 PROPERTY_INDEX_PASSPHRASE_REQUIRED, 158 PROPERTY_INDEX_PASSPHRASE_REQUIRED,
116 PROPERTY_INDEX_PORTAL_URL, 159 PROPERTY_INDEX_PORTAL_URL,
117 PROPERTY_INDEX_POWERED, 160 PROPERTY_INDEX_POWERED,
118 PROPERTY_INDEX_PRIORITY, 161 PROPERTY_INDEX_PRIORITY,
162 PROPERTY_INDEX_PROVIDER_HOST,
163 PROPERTY_INDEX_PROVIDER_TYPE,
119 PROPERTY_INDEX_PRL_VERSION, 164 PROPERTY_INDEX_PRL_VERSION,
120 PROPERTY_INDEX_PROFILE, 165 PROPERTY_INDEX_PROFILE,
121 PROPERTY_INDEX_PROFILES, 166 PROPERTY_INDEX_PROFILES,
122 PROPERTY_INDEX_PROVIDER, 167 PROPERTY_INDEX_PROVIDER,
123 PROPERTY_INDEX_PROXY_CONFIG, 168 PROPERTY_INDEX_PROXY_CONFIG,
124 PROPERTY_INDEX_REMOVE,
125 PROPERTY_INDEX_ROAMING_STATE, 169 PROPERTY_INDEX_ROAMING_STATE,
126 PROPERTY_INDEX_SAVE_CREDENTIALS, 170 PROPERTY_INDEX_SAVE_CREDENTIALS,
127 PROPERTY_INDEX_SCANNING, 171 PROPERTY_INDEX_SCANNING,
128 PROPERTY_INDEX_SECURITY, 172 PROPERTY_INDEX_SECURITY,
129 PROPERTY_INDEX_SELECTED_NETWORK, 173 PROPERTY_INDEX_SELECTED_NETWORK,
130 PROPERTY_INDEX_SERVICES, 174 PROPERTY_INDEX_SERVICES,
131 PROPERTY_INDEX_SERVICE_WATCH_LIST, 175 PROPERTY_INDEX_SERVICE_WATCH_LIST,
132 PROPERTY_INDEX_SERVING_OPERATOR, 176 PROPERTY_INDEX_SERVING_OPERATOR,
133 PROPERTY_INDEX_SIGNAL_STRENGTH, 177 PROPERTY_INDEX_SIGNAL_STRENGTH,
134 PROPERTY_INDEX_SIM_LOCK, 178 PROPERTY_INDEX_SIM_LOCK,
135 PROPERTY_INDEX_SSID, 179 PROPERTY_INDEX_SSID,
136 PROPERTY_INDEX_STATE, 180 PROPERTY_INDEX_STATE,
137 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN, 181 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN,
138 PROPERTY_INDEX_TECHNOLOGY_FAMILY, 182 PROPERTY_INDEX_TECHNOLOGY_FAMILY,
139 PROPERTY_INDEX_TYPE, 183 PROPERTY_INDEX_TYPE,
140 PROPERTY_INDEX_UI_DATA, 184 PROPERTY_INDEX_UI_DATA,
141 PROPERTY_INDEX_UNKNOWN, 185 PROPERTY_INDEX_UNKNOWN,
142 PROPERTY_INDEX_USAGE_URL, 186 PROPERTY_INDEX_USAGE_URL,
143 PROPERTY_INDEX_OLP, 187 PROPERTY_INDEX_VPN_DOMAIN,
144 PROPERTY_INDEX_OPEN_VPN_USER,
145 PROPERTY_INDEX_OPEN_VPN_PASSWORD,
146 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID,
147 PROPERTY_INDEX_WIFI_AUTH_MODE, 188 PROPERTY_INDEX_WIFI_AUTH_MODE,
148 PROPERTY_INDEX_WIFI_FREQUENCY, 189 PROPERTY_INDEX_WIFI_FREQUENCY,
149 PROPERTY_INDEX_WIFI_HEX_SSID, 190 PROPERTY_INDEX_WIFI_HEX_SSID,
150 PROPERTY_INDEX_WIFI_HIDDEN_SSID, 191 PROPERTY_INDEX_WIFI_HIDDEN_SSID,
151 PROPERTY_INDEX_WIFI_PHY_MODE, 192 PROPERTY_INDEX_WIFI_PHY_MODE
152 }; 193 };
153 194
154 // Connection enums (see flimflam/include/service.h) 195 // Connection enums (see flimflam/include/service.h)
155 enum ConnectionType { 196 enum ConnectionType {
156 TYPE_UNKNOWN = 0, 197 TYPE_UNKNOWN = 0,
157 TYPE_ETHERNET = 1, 198 TYPE_ETHERNET = 1,
158 TYPE_WIFI = 2, 199 TYPE_WIFI = 2,
159 TYPE_WIMAX = 3, 200 TYPE_WIMAX = 3,
160 TYPE_BLUETOOTH = 4, 201 TYPE_BLUETOOTH = 4,
161 TYPE_CELLULAR = 5, 202 TYPE_CELLULAR = 5,
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 state == STATE_IDLE || 705 state == STATE_IDLE ||
665 state == STATE_DISCONNECT || 706 state == STATE_DISCONNECT ||
666 state == STATE_FAILURE || 707 state == STATE_FAILURE ||
667 state == STATE_ACTIVATION_FAILURE); 708 state == STATE_ACTIVATION_FAILURE);
668 } 709 }
669 710
670 virtual bool UpdateStatus(const std::string& key, 711 virtual bool UpdateStatus(const std::string& key,
671 const base::Value& value, 712 const base::Value& value,
672 PropertyIndex* index); 713 PropertyIndex* index);
673 714
715 // Retrieves a property from the property_map_. If |value| is NULL,
716 // just returns whether or not the given property was found.
717 bool GetProperty(PropertyIndex index, const base::Value** value) const;
718
674 protected: 719 protected:
675 Network(const std::string& service_path, 720 Network(const std::string& service_path,
676 ConnectionType type); 721 ConnectionType type);
677 722
678 NetworkParser* network_parser() { return network_parser_.get(); } 723 NetworkParser* network_parser() { return network_parser_.get(); }
679 void SetNetworkParser(NetworkParser* parser); 724 void SetNetworkParser(NetworkParser* parser);
680 725
681 // Updates property_map_ for the corresponding property index. 726 // Updates property_map_ for the corresponding property index.
682 void UpdatePropertyMap(PropertyIndex index, const base::Value& value); 727 void UpdatePropertyMap(PropertyIndex index, const base::Value& value);
683 728
(...skipping 29 matching lines...) Expand all
713 758
714 // This allows NetworkParser and its subclasses access to device 759 // This allows NetworkParser and its subclasses access to device
715 // privates so that they can be reconstituted during parsing. The 760 // privates so that they can be reconstituted during parsing. The
716 // parsers only access things through the private set_ functions so 761 // parsers only access things through the private set_ functions so
717 // that this class can evolve without having to change all the 762 // that this class can evolve without having to change all the
718 // parsers. 763 // parsers.
719 friend class NetworkParser; 764 friend class NetworkParser;
720 friend class NativeNetworkParser; 765 friend class NativeNetworkParser;
721 friend class NativeVirtualNetworkParser; 766 friend class NativeVirtualNetworkParser;
722 friend class OncNetworkParser; 767 friend class OncNetworkParser;
768 friend class OncWifiNetworkParser;
723 friend class OncVirtualNetworkParser; 769 friend class OncVirtualNetworkParser;
724 770
725 // This allows the implementation classes access to privates. 771 // This allows the implementation classes access to privates.
726 NETWORK_LIBRARY_IMPL_FRIENDS; 772 NETWORK_LIBRARY_IMPL_FRIENDS;
727 773
728 // Use these functions at your peril. They are used by the various 774 // Use these functions at your peril. They are used by the various
729 // parsers to set state, and really shouldn't be used by anything else 775 // parsers to set state, and really shouldn't be used by anything else
730 // because they don't do the error checking and sending to the 776 // because they don't do the error checking and sending to the
731 // network layer that the other setters do. 777 // network layer that the other setters do.
732 void set_device_path(const std::string& device_path) { 778 void set_device_path(const std::string& device_path) {
(...skipping 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after
1755 const std::string& service_path) = 0; 1801 const std::string& service_path) = 0;
1756 1802
1757 // Factory function, creates a new instance and returns ownership. 1803 // Factory function, creates a new instance and returns ownership.
1758 // For normal usage, access the singleton via CrosLibrary::Get(). 1804 // For normal usage, access the singleton via CrosLibrary::Get().
1759 static NetworkLibrary* GetImpl(bool stub); 1805 static NetworkLibrary* GetImpl(bool stub);
1760 }; 1806 };
1761 1807
1762 } // namespace chromeos 1808 } // namespace chromeos
1763 1809
1764 #endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_ 1810 #endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/native_network_parser.cc ('k') | chrome/browser/chromeos/cros/network_library.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698