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

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: '' 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_CACERT,
128 PROPERTY_INDEX_OPEN_VPN_CERT,
129 PROPERTY_INDEX_OPEN_VPN_CIPHER,
130 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID,
131 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_SLOT,
132 PROPERTY_INDEX_OPEN_VPN_COMPLZO,
133 PROPERTY_INDEX_OPEN_VPN_COMPNOADAPT,
134 PROPERTY_INDEX_OPEN_VPN_KEYDIRECTION,
135 PROPERTY_INDEX_OPEN_VPN_NSCERTTYPE,
136 PROPERTY_INDEX_OPEN_VPN_OTP,
137 PROPERTY_INDEX_OPEN_VPN_PASSWORD,
138 PROPERTY_INDEX_OPEN_VPN_PIN,
139 PROPERTY_INDEX_OPEN_VPN_PORT,
140 PROPERTY_INDEX_OPEN_VPN_PROTO,
141 PROPERTY_INDEX_OPEN_VPN_PKCS11_PROVIDER,
142 PROPERTY_INDEX_OPEN_VPN_PUSHPEERINFO,
143 PROPERTY_INDEX_OPEN_VPN_REMOTECERTEKU,
144 PROPERTY_INDEX_OPEN_VPN_REMOTECERTKU,
145 PROPERTY_INDEX_OPEN_VPN_REMOTECERTTLS,
146 PROPERTY_INDEX_OPEN_VPN_RENEGSEC,
147 PROPERTY_INDEX_OPEN_VPN_SERVERPOLLTIMEOUT,
148 PROPERTY_INDEX_OPEN_VPN_SHAPER,
149 PROPERTY_INDEX_OPEN_VPN_STATICCHALLENGE,
150 PROPERTY_INDEX_OPEN_VPN_TLSAUTHCONTENTS,
151 PROPERTY_INDEX_OPEN_VPN_TLSREMOTE,
152 PROPERTY_INDEX_OPEN_VPN_USER,
112 PROPERTY_INDEX_OPERATOR_CODE, 153 PROPERTY_INDEX_OPERATOR_CODE,
113 PROPERTY_INDEX_OPERATOR_NAME, 154 PROPERTY_INDEX_OPERATOR_NAME,
114 PROPERTY_INDEX_PASSPHRASE, 155 PROPERTY_INDEX_PASSPHRASE,
115 PROPERTY_INDEX_PASSPHRASE_REQUIRED, 156 PROPERTY_INDEX_PASSPHRASE_REQUIRED,
116 PROPERTY_INDEX_PORTAL_URL, 157 PROPERTY_INDEX_PORTAL_URL,
117 PROPERTY_INDEX_POWERED, 158 PROPERTY_INDEX_POWERED,
118 PROPERTY_INDEX_PRIORITY, 159 PROPERTY_INDEX_PRIORITY,
160 PROPERTY_INDEX_PROVIDER_TYPE,
119 PROPERTY_INDEX_PRL_VERSION, 161 PROPERTY_INDEX_PRL_VERSION,
120 PROPERTY_INDEX_PROFILE, 162 PROPERTY_INDEX_PROFILE,
121 PROPERTY_INDEX_PROFILES, 163 PROPERTY_INDEX_PROFILES,
122 PROPERTY_INDEX_PROVIDER, 164 PROPERTY_INDEX_PROVIDER,
123 PROPERTY_INDEX_PROXY_CONFIG, 165 PROPERTY_INDEX_PROXY_CONFIG,
124 PROPERTY_INDEX_REMOVE,
125 PROPERTY_INDEX_ROAMING_STATE, 166 PROPERTY_INDEX_ROAMING_STATE,
126 PROPERTY_INDEX_SAVE_CREDENTIALS, 167 PROPERTY_INDEX_SAVE_CREDENTIALS,
127 PROPERTY_INDEX_SCANNING, 168 PROPERTY_INDEX_SCANNING,
128 PROPERTY_INDEX_SECURITY, 169 PROPERTY_INDEX_SECURITY,
129 PROPERTY_INDEX_SELECTED_NETWORK, 170 PROPERTY_INDEX_SELECTED_NETWORK,
130 PROPERTY_INDEX_SERVICES, 171 PROPERTY_INDEX_SERVICES,
131 PROPERTY_INDEX_SERVICE_WATCH_LIST, 172 PROPERTY_INDEX_SERVICE_WATCH_LIST,
132 PROPERTY_INDEX_SERVING_OPERATOR, 173 PROPERTY_INDEX_SERVING_OPERATOR,
133 PROPERTY_INDEX_SIGNAL_STRENGTH, 174 PROPERTY_INDEX_SIGNAL_STRENGTH,
134 PROPERTY_INDEX_SIM_LOCK, 175 PROPERTY_INDEX_SIM_LOCK,
135 PROPERTY_INDEX_SSID, 176 PROPERTY_INDEX_SSID,
136 PROPERTY_INDEX_STATE, 177 PROPERTY_INDEX_STATE,
137 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN, 178 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN,
138 PROPERTY_INDEX_TECHNOLOGY_FAMILY, 179 PROPERTY_INDEX_TECHNOLOGY_FAMILY,
139 PROPERTY_INDEX_TYPE, 180 PROPERTY_INDEX_TYPE,
140 PROPERTY_INDEX_UI_DATA, 181 PROPERTY_INDEX_UI_DATA,
141 PROPERTY_INDEX_UNKNOWN, 182 PROPERTY_INDEX_UNKNOWN,
142 PROPERTY_INDEX_USAGE_URL, 183 PROPERTY_INDEX_USAGE_URL,
143 PROPERTY_INDEX_OLP, 184 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, 185 PROPERTY_INDEX_WIFI_AUTH_MODE,
148 PROPERTY_INDEX_WIFI_FREQUENCY, 186 PROPERTY_INDEX_WIFI_FREQUENCY,
149 PROPERTY_INDEX_WIFI_HEX_SSID, 187 PROPERTY_INDEX_WIFI_HEX_SSID,
150 PROPERTY_INDEX_WIFI_HIDDEN_SSID, 188 PROPERTY_INDEX_WIFI_HIDDEN_SSID,
151 PROPERTY_INDEX_WIFI_PHY_MODE, 189 PROPERTY_INDEX_WIFI_PHY_MODE
152 }; 190 };
153 191
154 // Connection enums (see flimflam/include/service.h) 192 // Connection enums (see flimflam/include/service.h)
155 enum ConnectionType { 193 enum ConnectionType {
156 TYPE_UNKNOWN = 0, 194 TYPE_UNKNOWN = 0,
157 TYPE_ETHERNET = 1, 195 TYPE_ETHERNET = 1,
158 TYPE_WIFI = 2, 196 TYPE_WIFI = 2,
159 TYPE_WIMAX = 3, 197 TYPE_WIMAX = 3,
160 TYPE_BLUETOOTH = 4, 198 TYPE_BLUETOOTH = 4,
161 TYPE_CELLULAR = 5, 199 TYPE_CELLULAR = 5,
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 state == STATE_IDLE || 699 state == STATE_IDLE ||
662 state == STATE_DISCONNECT || 700 state == STATE_DISCONNECT ||
663 state == STATE_FAILURE || 701 state == STATE_FAILURE ||
664 state == STATE_ACTIVATION_FAILURE); 702 state == STATE_ACTIVATION_FAILURE);
665 } 703 }
666 704
667 virtual bool UpdateStatus(const std::string& key, 705 virtual bool UpdateStatus(const std::string& key,
668 const base::Value& value, 706 const base::Value& value,
669 PropertyIndex* index); 707 PropertyIndex* index);
670 708
709 // Retrieves a property from the property_map_. If |value| is NULL,
710 // just returns whether or not the given property was found.
711 bool GetProperty(PropertyIndex index, const base::Value** value) const;
712
671 protected: 713 protected:
672 Network(const std::string& service_path, 714 Network(const std::string& service_path,
673 ConnectionType type); 715 ConnectionType type);
674 716
675 NetworkParser* network_parser() { return network_parser_.get(); } 717 NetworkParser* network_parser() { return network_parser_.get(); }
676 void SetNetworkParser(NetworkParser* parser); 718 void SetNetworkParser(NetworkParser* parser);
677 719
678 // Updates property_map_ for the corresponding property index. 720 // Updates property_map_ for the corresponding property index.
679 void UpdatePropertyMap(PropertyIndex index, const base::Value& value); 721 void UpdatePropertyMap(PropertyIndex index, const base::Value& value);
680 722
(...skipping 30 matching lines...) Expand all
711 753
712 // This allows NetworkParser and its subclasses access to device 754 // This allows NetworkParser and its subclasses access to device
713 // privates so that they can be reconstituted during parsing. The 755 // privates so that they can be reconstituted during parsing. The
714 // parsers only access things through the private set_ functions so 756 // parsers only access things through the private set_ functions so
715 // that this class can evolve without having to change all the 757 // that this class can evolve without having to change all the
716 // parsers. 758 // parsers.
717 friend class NetworkParser; 759 friend class NetworkParser;
718 friend class NativeNetworkParser; 760 friend class NativeNetworkParser;
719 friend class NativeVirtualNetworkParser; 761 friend class NativeVirtualNetworkParser;
720 friend class OncNetworkParser; 762 friend class OncNetworkParser;
763 friend class OncWifiNetworkParser;
721 friend class OncVirtualNetworkParser; 764 friend class OncVirtualNetworkParser;
722 765
723 // This allows the implementation classes access to privates. 766 // This allows the implementation classes access to privates.
724 NETWORK_LIBRARY_IMPL_FRIENDS; 767 NETWORK_LIBRARY_IMPL_FRIENDS;
725 768
726 // Use these functions at your peril. They are used by the various 769 // Use these functions at your peril. They are used by the various
727 // parsers to set state, and really shouldn't be used by anything else 770 // parsers to set state, and really shouldn't be used by anything else
728 // because they don't do the error checking and sending to the 771 // because they don't do the error checking and sending to the
729 // network layer that the other setters do. 772 // network layer that the other setters do.
730 void set_device_path(const std::string& device_path) { 773 void set_device_path(const std::string& device_path) {
(...skipping 1021 matching lines...) Expand 10 before | Expand all | Expand 10 after
1752 const std::string& service_path) = 0; 1795 const std::string& service_path) = 0;
1753 1796
1754 // Factory function, creates a new instance and returns ownership. 1797 // Factory function, creates a new instance and returns ownership.
1755 // For normal usage, access the singleton via CrosLibrary::Get(). 1798 // For normal usage, access the singleton via CrosLibrary::Get().
1756 static NetworkLibrary* GetImpl(bool stub); 1799 static NetworkLibrary* GetImpl(bool stub);
1757 }; 1800 };
1758 1801
1759 } // namespace chromeos 1802 } // namespace chromeos
1760 1803
1761 #endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_ 1804 #endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698