OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chromeos/network/onc/onc_translation_tables.h" | 5 #include "chromeos/network/onc/onc_translation_tables.h" |
6 | 6 |
7 #include <cstddef> | 7 #include <cstddef> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "components/onc/onc_constants.h" | 10 #include "components/onc/onc_constants.h" |
11 #include "third_party/cros_system_api/dbus/service_constants.h" | 11 #include "third_party/cros_system_api/dbus/service_constants.h" |
12 | 12 |
13 namespace chromeos { | 13 namespace chromeos { |
14 namespace onc { | 14 namespace onc { |
15 | 15 |
16 // CertificatePattern is converted with function CreateUIData(...) to UIData | 16 // CertificatePattern is converted with function CreateUIData(...) to UIData |
17 // stored in Shill. | 17 // stored in Shill. |
18 // | 18 // |
19 // Proxy settings are converted to Shill by function | 19 // Proxy settings are converted to Shill by function |
20 // ConvertOncProxySettingsToProxyConfig(...). | 20 // ConvertOncProxySettingsToProxyConfig(...). |
21 | 21 |
22 namespace { | 22 namespace { |
23 | 23 |
24 const FieldTranslationEntry eap_fields[] = { | 24 const FieldTranslationEntry eap_fields[] = { |
25 { ::onc::eap::kAnonymousIdentity, shill::kEapAnonymousIdentityProperty}, | 25 {::onc::eap::kAnonymousIdentity, shill::kEapAnonymousIdentityProperty}, |
26 { ::onc::eap::kIdentity, shill::kEapIdentityProperty}, | 26 {::onc::eap::kIdentity, shill::kEapIdentityProperty}, |
27 // This field is converted during translation, see onc_translator_*. | 27 // This field is converted during translation, see onc_translator_*. |
28 // { ::onc::eap::kInner, shill::kEapPhase2AuthProperty }, | 28 // { ::onc::eap::kInner, shill::kEapPhase2AuthProperty }, |
29 | 29 |
30 // This field is converted during translation, see onc_translator_*. | 30 // This field is converted during translation, see onc_translator_*. |
31 // { ::onc::eap::kOuter, shill::kEapMethodProperty }, | 31 // { ::onc::eap::kOuter, shill::kEapMethodProperty }, |
32 { ::onc::eap::kPassword, shill::kEapPasswordProperty}, | 32 {::onc::eap::kPassword, shill::kEapPasswordProperty}, |
33 { ::onc::eap::kSaveCredentials, shill::kSaveCredentialsProperty}, | 33 {::onc::eap::kSaveCredentials, shill::kSaveCredentialsProperty}, |
34 { ::onc::eap::kServerCAPEMs, shill::kEapCaCertPemProperty}, | 34 {::onc::eap::kServerCAPEMs, shill::kEapCaCertPemProperty}, |
35 { ::onc::eap::kUseSystemCAs, shill::kEapUseSystemCasProperty}, | 35 {::onc::eap::kUseSystemCAs, shill::kEapUseSystemCasProperty}, |
36 {NULL}}; | 36 {NULL}}; |
37 | 37 |
38 const FieldTranslationEntry ipsec_fields[] = { | 38 const FieldTranslationEntry ipsec_fields[] = { |
39 // This field is converted during translation, see onc_translator_*. | 39 // This field is converted during translation, see onc_translator_*. |
40 // { ::onc::ipsec::kAuthenticationType, shill::kL2tpIpsecAuthenticationType | 40 // { ::onc::ipsec::kAuthenticationType, shill::kL2tpIpsecAuthenticationType |
41 // }, | 41 // }, |
42 { ::onc::ipsec::kGroup, shill::kL2tpIpsecTunnelGroupProperty}, | 42 {::onc::ipsec::kGroup, shill::kL2tpIpsecTunnelGroupProperty}, |
43 // Ignored by Shill, not necessary to synchronize. | 43 // Ignored by Shill, not necessary to synchronize. |
44 // { ::onc::ipsec::kIKEVersion, shill::kL2tpIpsecIkeVersion }, | 44 // { ::onc::ipsec::kIKEVersion, shill::kL2tpIpsecIkeVersion }, |
45 { ::onc::ipsec::kPSK, shill::kL2tpIpsecPskProperty}, | 45 {::onc::ipsec::kPSK, shill::kL2tpIpsecPskProperty}, |
46 // This field is converted during translation, see onc_translator_*. | 46 // This field is converted during translation, see onc_translator_*. |
47 // { ::onc::vpn::kSaveCredentials, shill::kSaveCredentialsProperty}, | 47 // { ::onc::vpn::kSaveCredentials, shill::kSaveCredentialsProperty}, |
48 { ::onc::ipsec::kServerCAPEMs, shill::kL2tpIpsecCaCertPemProperty}, | 48 {::onc::ipsec::kServerCAPEMs, shill::kL2tpIpsecCaCertPemProperty}, |
49 {NULL}}; | 49 {NULL}}; |
50 | 50 |
51 const FieldTranslationEntry xauth_fields[] = { | 51 const FieldTranslationEntry xauth_fields[] = { |
52 { ::onc::vpn::kPassword, shill::kL2tpIpsecXauthPasswordProperty}, | 52 {::onc::vpn::kPassword, shill::kL2tpIpsecXauthPasswordProperty}, |
53 { ::onc::vpn::kUsername, shill::kL2tpIpsecXauthUserProperty}, | 53 {::onc::vpn::kUsername, shill::kL2tpIpsecXauthUserProperty}, |
54 {NULL}}; | 54 {NULL}}; |
55 | 55 |
56 const FieldTranslationEntry l2tp_fields[] = { | 56 const FieldTranslationEntry l2tp_fields[] = { |
57 { ::onc::vpn::kPassword, shill::kL2tpIpsecPasswordProperty}, | 57 {::onc::vpn::kPassword, shill::kL2tpIpsecPasswordProperty}, |
58 // We don't synchronize l2tp's SaveCredentials field for now, as Shill | 58 // We don't synchronize l2tp's SaveCredentials field for now, as Shill |
59 // doesn't support separate settings for ipsec and l2tp. | 59 // doesn't support separate settings for ipsec and l2tp. |
60 // { ::onc::vpn::kSaveCredentials, &kBoolSignature }, | 60 // { ::onc::vpn::kSaveCredentials, &kBoolSignature }, |
61 { ::onc::vpn::kUsername, shill::kL2tpIpsecUserProperty}, {NULL}}; | 61 {::onc::vpn::kUsername, shill::kL2tpIpsecUserProperty}, |
| 62 {NULL}}; |
62 | 63 |
63 const FieldTranslationEntry openvpn_fields[] = { | 64 const FieldTranslationEntry openvpn_fields[] = { |
64 { ::onc::openvpn::kAuth, shill::kOpenVPNAuthProperty}, | 65 {::onc::openvpn::kAuth, shill::kOpenVPNAuthProperty}, |
65 { ::onc::openvpn::kAuthNoCache, shill::kOpenVPNAuthNoCacheProperty}, | 66 {::onc::openvpn::kAuthNoCache, shill::kOpenVPNAuthNoCacheProperty}, |
66 { ::onc::openvpn::kAuthRetry, shill::kOpenVPNAuthRetryProperty}, | 67 {::onc::openvpn::kAuthRetry, shill::kOpenVPNAuthRetryProperty}, |
67 { ::onc::openvpn::kCipher, shill::kOpenVPNCipherProperty}, | 68 {::onc::openvpn::kCipher, shill::kOpenVPNCipherProperty}, |
68 { ::onc::openvpn::kCompLZO, shill::kOpenVPNCompLZOProperty}, | 69 {::onc::openvpn::kCompLZO, shill::kOpenVPNCompLZOProperty}, |
69 { ::onc::openvpn::kCompNoAdapt, shill::kOpenVPNCompNoAdaptProperty}, | 70 {::onc::openvpn::kCompNoAdapt, shill::kOpenVPNCompNoAdaptProperty}, |
70 { ::onc::openvpn::kIgnoreDefaultRoute, | 71 {::onc::openvpn::kIgnoreDefaultRoute, |
71 shill::kOpenVPNIgnoreDefaultRouteProperty}, | 72 shill::kOpenVPNIgnoreDefaultRouteProperty}, |
72 { ::onc::openvpn::kKeyDirection, shill::kOpenVPNKeyDirectionProperty}, | 73 {::onc::openvpn::kKeyDirection, shill::kOpenVPNKeyDirectionProperty}, |
73 { ::onc::openvpn::kNsCertType, shill::kOpenVPNNsCertTypeProperty}, | 74 {::onc::openvpn::kNsCertType, shill::kOpenVPNNsCertTypeProperty}, |
74 // This field is converted during translation, see onc_translator_*. | 75 // This field is converted during translation, see onc_translator_*. |
75 // { ::onc::vpn::kOTP, shill::kOpenVPNTokenProperty or kOpenVPNOTPProperty}, | 76 // { ::onc::vpn::kOTP, shill::kOpenVPNTokenProperty or kOpenVPNOTPProperty}, |
76 // This field is converted during translation, see onc_translator_*. | 77 // This field is converted during translation, see onc_translator_*. |
77 // { ::onc::vpn::kPassword, shill::kOpenVPNPasswordProperty}, | 78 // { ::onc::vpn::kPassword, shill::kOpenVPNPasswordProperty}, |
78 { ::onc::openvpn::kPort, shill::kOpenVPNPortProperty}, | 79 {::onc::openvpn::kPort, shill::kOpenVPNPortProperty}, |
79 { ::onc::openvpn::kProto, shill::kOpenVPNProtoProperty}, | 80 {::onc::openvpn::kProto, shill::kOpenVPNProtoProperty}, |
80 { ::onc::openvpn::kPushPeerInfo, shill::kOpenVPNPushPeerInfoProperty}, | 81 {::onc::openvpn::kPushPeerInfo, shill::kOpenVPNPushPeerInfoProperty}, |
81 { ::onc::openvpn::kRemoteCertEKU, shill::kOpenVPNRemoteCertEKUProperty}, | 82 {::onc::openvpn::kRemoteCertEKU, shill::kOpenVPNRemoteCertEKUProperty}, |
82 // This field is converted during translation, see onc_translator_*. | 83 // This field is converted during translation, see onc_translator_*. |
83 // { ::onc::openvpn::kRemoteCertKU, shill::kOpenVPNRemoteCertKUProperty }, | 84 // { ::onc::openvpn::kRemoteCertKU, shill::kOpenVPNRemoteCertKUProperty }, |
84 { ::onc::openvpn::kRemoteCertTLS, shill::kOpenVPNRemoteCertTLSProperty}, | 85 {::onc::openvpn::kRemoteCertTLS, shill::kOpenVPNRemoteCertTLSProperty}, |
85 { ::onc::openvpn::kRenegSec, shill::kOpenVPNRenegSecProperty}, | 86 {::onc::openvpn::kRenegSec, shill::kOpenVPNRenegSecProperty}, |
86 // This field is converted during translation, see onc_translator_*. | 87 // This field is converted during translation, see onc_translator_*. |
87 // { ::onc::vpn::kSaveCredentials, shill::kSaveCredentialsProperty}, | 88 // { ::onc::vpn::kSaveCredentials, shill::kSaveCredentialsProperty}, |
88 { ::onc::openvpn::kServerCAPEMs, shill::kOpenVPNCaCertPemProperty}, | 89 {::onc::openvpn::kServerCAPEMs, shill::kOpenVPNCaCertPemProperty}, |
89 { ::onc::openvpn::kServerPollTimeout, | 90 {::onc::openvpn::kServerPollTimeout, |
90 shill::kOpenVPNServerPollTimeoutProperty}, | 91 shill::kOpenVPNServerPollTimeoutProperty}, |
91 { ::onc::openvpn::kShaper, shill::kOpenVPNShaperProperty}, | 92 {::onc::openvpn::kShaper, shill::kOpenVPNShaperProperty}, |
92 { ::onc::openvpn::kStaticChallenge, shill::kOpenVPNStaticChallengeProperty}, | 93 {::onc::openvpn::kStaticChallenge, shill::kOpenVPNStaticChallengeProperty}, |
93 { ::onc::openvpn::kTLSAuthContents, shill::kOpenVPNTLSAuthContentsProperty}, | 94 {::onc::openvpn::kTLSAuthContents, shill::kOpenVPNTLSAuthContentsProperty}, |
94 { ::onc::openvpn::kTLSRemote, shill::kOpenVPNTLSRemoteProperty}, | 95 {::onc::openvpn::kTLSRemote, shill::kOpenVPNTLSRemoteProperty}, |
95 { ::onc::vpn::kUsername, shill::kOpenVPNUserProperty}, | 96 {::onc::vpn::kUsername, shill::kOpenVPNUserProperty}, |
96 { ::onc::openvpn::kVerifyHash, shill::kOpenVPNVerifyHashProperty}, | 97 {::onc::openvpn::kVerifyHash, shill::kOpenVPNVerifyHashProperty}, |
97 {NULL}}; | 98 {NULL}}; |
98 | 99 |
99 const FieldTranslationEntry verify_x509_fields[] = { | 100 const FieldTranslationEntry verify_x509_fields[] = { |
100 { ::onc::verify_x509::kName, shill::kOpenVPNVerifyX509NameProperty}, | 101 {::onc::verify_x509::kName, shill::kOpenVPNVerifyX509NameProperty}, |
101 { ::onc::verify_x509::kType, shill::kOpenVPNVerifyX509TypeProperty}, | 102 {::onc::verify_x509::kType, shill::kOpenVPNVerifyX509TypeProperty}, |
102 {NULL}}; | 103 {NULL}}; |
103 | 104 |
104 const FieldTranslationEntry vpn_fields[] = { | 105 const FieldTranslationEntry vpn_fields[] = { |
105 { ::onc::vpn::kAutoConnect, shill::kAutoConnectProperty}, | 106 {::onc::vpn::kAutoConnect, shill::kAutoConnectProperty}, |
106 // These fields are converted during translation, see onc_translator_*. | 107 // These fields are converted during translation, see onc_translator_*. |
107 // { ::onc::vpn::kHost, shill::kProviderHostProperty}, | 108 // { ::onc::vpn::kHost, shill::kProviderHostProperty}, |
108 // { ::onc::vpn::kType, shill::kProviderTypeProperty }, | 109 // { ::onc::vpn::kType, shill::kProviderTypeProperty }, |
109 {NULL}}; | 110 {NULL}}; |
110 | 111 |
111 const FieldTranslationEntry wifi_fields[] = { | 112 const FieldTranslationEntry wifi_fields[] = { |
112 { ::onc::wifi::kAutoConnect, shill::kAutoConnectProperty}, | 113 {::onc::wifi::kAutoConnect, shill::kAutoConnectProperty}, |
113 { ::onc::wifi::kBSSID, shill::kWifiBSsid}, | 114 {::onc::wifi::kBSSID, shill::kWifiBSsid}, |
114 // This dictionary is converted during translation, see onc_translator_*. | 115 // This dictionary is converted during translation, see onc_translator_*. |
115 // { ::onc::wifi::kEAP, shill::kEap*}, | 116 // { ::onc::wifi::kEAP, shill::kEap*}, |
116 { ::onc::wifi::kFrequency, shill::kWifiFrequency}, | 117 {::onc::wifi::kFrequency, shill::kWifiFrequency}, |
117 { ::onc::wifi::kFrequencyList, shill::kWifiFrequencyListProperty}, | 118 {::onc::wifi::kFrequencyList, shill::kWifiFrequencyListProperty}, |
118 { ::onc::wifi::kHexSSID, shill::kWifiHexSsid}, | 119 {::onc::wifi::kHexSSID, shill::kWifiHexSsid}, |
119 { ::onc::wifi::kHiddenSSID, shill::kWifiHiddenSsid}, | 120 {::onc::wifi::kHiddenSSID, shill::kWifiHiddenSsid}, |
120 { ::onc::wifi::kPassphrase, shill::kPassphraseProperty}, | 121 {::onc::wifi::kPassphrase, shill::kPassphraseProperty}, |
121 // This field is converted during translation, see onc_translator_*. | 122 // This field is converted during translation, see onc_translator_*. |
122 // { ::onc::wifi::kSecurity, shill::kSecurityClassProperty }, | 123 // { ::onc::wifi::kSecurity, shill::kSecurityClassProperty }, |
123 { ::onc::wifi::kSignalStrength, shill::kSignalStrengthProperty}, | 124 {::onc::wifi::kSignalStrength, shill::kSignalStrengthProperty}, |
124 {NULL}}; | 125 {NULL}}; |
125 | 126 |
126 const FieldTranslationEntry wimax_fields[] = { | 127 const FieldTranslationEntry wimax_fields[] = { |
127 { ::onc::wimax::kAutoConnect, shill::kAutoConnectProperty}, | 128 {::onc::wimax::kAutoConnect, shill::kAutoConnectProperty}, |
128 // This dictionary is converted during translation, see onc_translator_*. | 129 // This dictionary is converted during translation, see onc_translator_*. |
129 // { ::onc::wimax::kEAP, shill::kEap*}, | 130 // { ::onc::wimax::kEAP, shill::kEap*}, |
130 { ::onc::wimax::kSignalStrength, shill::kSignalStrengthProperty}, | 131 {::onc::wimax::kSignalStrength, shill::kSignalStrengthProperty}, |
131 {NULL}}; | 132 {NULL}}; |
132 | 133 |
133 const FieldTranslationEntry cellular_apn_fields[] = { | 134 const FieldTranslationEntry cellular_apn_fields[] = { |
134 { ::onc::cellular_apn::kAccessPointName, shill::kApnProperty}, | 135 {::onc::cellular_apn::kAccessPointName, shill::kApnProperty}, |
135 { ::onc::cellular_apn::kName, shill::kApnNameProperty}, | 136 {::onc::cellular_apn::kName, shill::kApnNameProperty}, |
136 { ::onc::cellular_apn::kUsername, shill::kApnUsernameProperty}, | 137 {::onc::cellular_apn::kUsername, shill::kApnUsernameProperty}, |
137 { ::onc::cellular_apn::kPassword, shill::kApnPasswordProperty}, | 138 {::onc::cellular_apn::kPassword, shill::kApnPasswordProperty}, |
138 { ::onc::cellular_apn::kLocalizedName, shill::kApnLocalizedNameProperty}, | 139 {::onc::cellular_apn::kLocalizedName, shill::kApnLocalizedNameProperty}, |
139 { ::onc::cellular_apn::kLanguage, shill::kApnLanguageProperty}, | 140 {::onc::cellular_apn::kLanguage, shill::kApnLanguageProperty}, |
140 {NULL}}; | 141 {NULL}}; |
141 | 142 |
142 const FieldTranslationEntry cellular_found_network_fields[] = { | 143 const FieldTranslationEntry cellular_found_network_fields[] = { |
143 { ::onc::cellular_found_network::kNetworkId, shill::kNetworkIdProperty}, | 144 {::onc::cellular_found_network::kNetworkId, shill::kNetworkIdProperty}, |
144 { ::onc::cellular_found_network::kStatus, shill::kStatusProperty}, | 145 {::onc::cellular_found_network::kStatus, shill::kStatusProperty}, |
145 { ::onc::cellular_found_network::kTechnology, shill::kTechnologyProperty}, | 146 {::onc::cellular_found_network::kTechnology, shill::kTechnologyProperty}, |
146 { ::onc::cellular_found_network::kShortName, shill::kShortNameProperty}, | 147 {::onc::cellular_found_network::kShortName, shill::kShortNameProperty}, |
147 { ::onc::cellular_found_network::kLongName, shill::kLongNameProperty}, | 148 {::onc::cellular_found_network::kLongName, shill::kLongNameProperty}, |
148 {NULL}}; | 149 {NULL}}; |
149 | 150 |
150 const FieldTranslationEntry cellular_provider_fields[] = { | 151 const FieldTranslationEntry cellular_provider_fields[] = { |
151 { ::onc::cellular_provider::kCode, shill::kOperatorCodeKey}, | 152 {::onc::cellular_provider::kCode, shill::kOperatorCodeKey}, |
152 { ::onc::cellular_provider::kCountry, shill::kOperatorCountryKey}, | 153 {::onc::cellular_provider::kCountry, shill::kOperatorCountryKey}, |
153 { ::onc::cellular_provider::kName, shill::kOperatorNameKey}, | 154 {::onc::cellular_provider::kName, shill::kOperatorNameKey}, |
154 {NULL}}; | 155 {NULL}}; |
155 | 156 |
156 const FieldTranslationEntry sim_lock_status_fields[] = { | 157 const FieldTranslationEntry sim_lock_status_fields[] = { |
157 { ::onc::sim_lock_status::kLockEnabled, shill::kSIMLockEnabledProperty}, | 158 {::onc::sim_lock_status::kLockEnabled, shill::kSIMLockEnabledProperty}, |
158 { ::onc::sim_lock_status::kLockType, shill::kSIMLockTypeProperty}, | 159 {::onc::sim_lock_status::kLockType, shill::kSIMLockTypeProperty}, |
159 { ::onc::sim_lock_status::kRetriesLeft, shill::kSIMLockRetriesLeftProperty}, | 160 {::onc::sim_lock_status::kRetriesLeft, shill::kSIMLockRetriesLeftProperty}, |
160 {NULL}}; | 161 {NULL}}; |
161 | 162 |
162 // This must only contain Service properties and not Device properties. | 163 // This must only contain Service properties and not Device properties. |
163 // For Device properties see kCellularDeviceTable. | 164 // For Device properties see kCellularDeviceTable. |
164 const FieldTranslationEntry cellular_fields[] = { | 165 const FieldTranslationEntry cellular_fields[] = { |
165 { ::onc::cellular::kActivationType, shill::kActivationTypeProperty}, | 166 {::onc::cellular::kActivationType, shill::kActivationTypeProperty}, |
166 // This field is converted during translation, see onc_translator_*. | 167 // This field is converted during translation, see onc_translator_*. |
167 // { ::onc::cellular::kActivationState, shill::kActivationStateProperty}, | 168 // { ::onc::cellular::kActivationState, shill::kActivationStateProperty}, |
168 { ::onc::vpn::kAutoConnect, shill::kAutoConnectProperty}, | 169 {::onc::vpn::kAutoConnect, shill::kAutoConnectProperty}, |
169 { ::onc::cellular::kNetworkTechnology, shill::kNetworkTechnologyProperty}, | 170 {::onc::cellular::kNetworkTechnology, shill::kNetworkTechnologyProperty}, |
170 // This field is converted during translation, see onc_translator_*. | 171 // This field is converted during translation, see onc_translator_*. |
171 // { ::onc::cellular::kRoamingState, shill::kRoamingStateProperty}, | 172 // { ::onc::cellular::kRoamingState, shill::kRoamingStateProperty}, |
172 { ::onc::cellular::kSignalStrength, shill::kSignalStrengthProperty}, | 173 {::onc::cellular::kSignalStrength, shill::kSignalStrengthProperty}, |
173 {NULL}}; | 174 {NULL}}; |
174 | 175 |
175 const FieldTranslationEntry network_fields[] = { | 176 const FieldTranslationEntry network_fields[] = { |
176 { ::onc::network_config::kGUID, shill::kGuidProperty}, | 177 {::onc::network_config::kGUID, shill::kGuidProperty}, |
177 { ::onc::network_config::kConnectable, shill::kConnectableProperty }, | 178 {::onc::network_config::kConnectable, shill::kConnectableProperty}, |
178 { ::onc::network_config::kErrorState, shill::kErrorProperty }, | 179 {::onc::network_config::kErrorState, shill::kErrorProperty}, |
179 { ::onc::network_config::kPriority, shill::kPriorityProperty }, | 180 {::onc::network_config::kPriority, shill::kPriorityProperty}, |
180 | 181 |
181 // Shill doesn't allow setting the name for non-VPN networks. | 182 // Shill doesn't allow setting the name for non-VPN networks. |
182 // Name is conditionally translated, see onc_translator_*. | 183 // Name is conditionally translated, see onc_translator_*. |
183 // { ::onc::network_config::kName, shill::kNameProperty }, | 184 // { ::onc::network_config::kName, shill::kNameProperty }, |
184 | 185 |
185 // Type is converted during translation, see onc_translator_*. | 186 // Type is converted during translation, see onc_translator_*. |
186 // { ::onc::network_config::kType, shill::kTypeProperty }, | 187 // { ::onc::network_config::kType, shill::kTypeProperty }, |
187 | 188 |
188 // These fields are converted during translation, see | 189 // These fields are converted during translation, see |
189 // onc_translator_shill_to_onc.cc. They are only converted when going from | 190 // onc_translator_shill_to_onc.cc. They are only converted when going from |
190 // Shill->ONC, and ignored otherwise. | 191 // Shill->ONC, and ignored otherwise. |
191 // { ::onc::network_config::kConnectionState, shill::kStateProperty }, | 192 // { ::onc::network_config::kConnectionState, shill::kStateProperty }, |
192 // { ::onc::network_config::kRestrictedConnectivity, | 193 // { ::onc::network_config::kRestrictedConnectivity, |
193 // shill::kStateProperty }, | 194 // shill::kStateProperty }, |
194 // { ::onc::network_config::kSource, shill::kProfileProperty }, | 195 // { ::onc::network_config::kSource, shill::kProfileProperty }, |
195 // { ::onc::network_config::kMacAddress, shill::kAddressProperty }, | 196 // { ::onc::network_config::kMacAddress, shill::kAddressProperty }, |
196 {NULL}}; | 197 {NULL}}; |
197 | 198 |
198 const FieldTranslationEntry ipconfig_fields[] = { | 199 const FieldTranslationEntry ipconfig_fields[] = { |
199 { ::onc::ipconfig::kIPAddress, shill::kAddressProperty}, | 200 {::onc::ipconfig::kIPAddress, shill::kAddressProperty}, |
200 { ::onc::ipconfig::kGateway, shill::kGatewayProperty}, | 201 {::onc::ipconfig::kGateway, shill::kGatewayProperty}, |
201 { ::onc::ipconfig::kRoutingPrefix, shill::kPrefixlenProperty}, | 202 {::onc::ipconfig::kRoutingPrefix, shill::kPrefixlenProperty}, |
202 { ::onc::ipconfig::kNameServers, shill::kNameServersProperty}, | 203 {::onc::ipconfig::kNameServers, shill::kNameServersProperty}, |
203 // This field is converted during translation, see ShillToONCTranslator:: | 204 // This field is converted during translation, see ShillToONCTranslator:: |
204 // TranslateIPConfig. It is only converted from Shill->ONC. | 205 // TranslateIPConfig. It is only converted from Shill->ONC. |
205 // { ::onc::ipconfig::kType, shill::kMethodProperty}, | 206 // { ::onc::ipconfig::kType, shill::kMethodProperty}, |
206 { ::onc::ipconfig::kWebProxyAutoDiscoveryUrl, | 207 {::onc::ipconfig::kWebProxyAutoDiscoveryUrl, |
207 shill::kWebProxyAutoDiscoveryUrlProperty}, | 208 shill::kWebProxyAutoDiscoveryUrlProperty}, |
208 {NULL}}; | 209 {NULL}}; |
209 | 210 |
210 const FieldTranslationEntry static_or_saved_ipconfig_fields[] = { | 211 const FieldTranslationEntry static_or_saved_ipconfig_fields[] = { |
211 { ::onc::ipconfig::kIPAddress, shill::kAddressProperty}, | 212 {::onc::ipconfig::kIPAddress, shill::kAddressProperty}, |
212 { ::onc::ipconfig::kGateway, shill::kGatewayProperty}, | 213 {::onc::ipconfig::kGateway, shill::kGatewayProperty}, |
213 { ::onc::ipconfig::kRoutingPrefix, shill::kPrefixlenProperty}, | 214 {::onc::ipconfig::kRoutingPrefix, shill::kPrefixlenProperty}, |
214 { ::onc::ipconfig::kNameServers, shill::kNameServersProperty}, | 215 {::onc::ipconfig::kNameServers, shill::kNameServersProperty}, |
215 {NULL}}; | 216 {NULL}}; |
216 | 217 |
217 struct OncValueTranslationEntry { | 218 struct OncValueTranslationEntry { |
218 const OncValueSignature* onc_signature; | 219 const OncValueSignature* onc_signature; |
219 const FieldTranslationEntry* field_translation_table; | 220 const FieldTranslationEntry* field_translation_table; |
220 }; | 221 }; |
221 | 222 |
222 const OncValueTranslationEntry onc_value_translation_table[] = { | 223 const OncValueTranslationEntry onc_value_translation_table[] = { |
223 { &kEAPSignature, eap_fields }, | 224 {&kEAPSignature, eap_fields}, |
224 { &kIPsecSignature, ipsec_fields }, | 225 {&kIPsecSignature, ipsec_fields}, |
225 { &kL2TPSignature, l2tp_fields }, | 226 {&kL2TPSignature, l2tp_fields}, |
226 { &kXAUTHSignature, xauth_fields }, | 227 {&kXAUTHSignature, xauth_fields}, |
227 { &kOpenVPNSignature, openvpn_fields }, | 228 {&kOpenVPNSignature, openvpn_fields}, |
228 { &kVerifyX509Signature, verify_x509_fields }, | 229 {&kVerifyX509Signature, verify_x509_fields}, |
229 { &kVPNSignature, vpn_fields }, | 230 {&kVPNSignature, vpn_fields}, |
230 { &kWiFiSignature, wifi_fields }, | 231 {&kWiFiSignature, wifi_fields}, |
231 { &kWiFiWithStateSignature, wifi_fields }, | 232 {&kWiFiWithStateSignature, wifi_fields}, |
232 { &kWiMAXSignature, wimax_fields }, | 233 {&kWiMAXSignature, wimax_fields}, |
233 { &kWiMAXWithStateSignature, wimax_fields }, | 234 {&kWiMAXWithStateSignature, wimax_fields}, |
234 { &kCellularApnSignature, cellular_apn_fields }, | 235 {&kCellularApnSignature, cellular_apn_fields}, |
235 { &kCellularFoundNetworkSignature, cellular_found_network_fields }, | 236 {&kCellularFoundNetworkSignature, cellular_found_network_fields}, |
236 { &kCellularProviderSignature, cellular_provider_fields }, | 237 {&kCellularProviderSignature, cellular_provider_fields}, |
237 { &kSIMLockStatusSignature, sim_lock_status_fields }, | 238 {&kSIMLockStatusSignature, sim_lock_status_fields}, |
238 { &kCellularSignature, cellular_fields }, | 239 {&kCellularSignature, cellular_fields}, |
239 { &kCellularWithStateSignature, cellular_fields }, | 240 {&kCellularWithStateSignature, cellular_fields}, |
240 { &kNetworkWithStateSignature, network_fields }, | 241 {&kNetworkWithStateSignature, network_fields}, |
241 { &kNetworkConfigurationSignature, network_fields }, | 242 {&kNetworkConfigurationSignature, network_fields}, |
242 { &kIPConfigSignature, ipconfig_fields }, | 243 {&kIPConfigSignature, ipconfig_fields}, |
243 { &kSavedIPConfigSignature, static_or_saved_ipconfig_fields }, | 244 {&kSavedIPConfigSignature, static_or_saved_ipconfig_fields}, |
244 { &kStaticIPConfigSignature, static_or_saved_ipconfig_fields }, | 245 {&kStaticIPConfigSignature, static_or_saved_ipconfig_fields}, |
245 { NULL } | 246 {NULL}}; |
246 }; | |
247 | 247 |
248 struct NestedShillDictionaryEntry { | 248 struct NestedShillDictionaryEntry { |
249 const OncValueSignature* onc_signature; | 249 const OncValueSignature* onc_signature; |
250 // NULL terminated list of Shill property keys. | 250 // NULL terminated list of Shill property keys. |
251 const char* const* shill_property_path; | 251 const char* const* shill_property_path; |
252 }; | 252 }; |
253 | 253 |
254 const char* cellular_apn_path_entries[] = { | 254 const char* cellular_apn_path_entries[] = {shill::kCellularApnProperty, NULL}; |
255 shill::kCellularApnProperty, | |
256 NULL | |
257 }; | |
258 | 255 |
259 const char* static_ip_config_path_entries[] = { | 256 const char* static_ip_config_path_entries[] = {shill::kStaticIPConfigProperty, |
260 shill::kStaticIPConfigProperty, | 257 NULL}; |
261 NULL | |
262 }; | |
263 | 258 |
264 const NestedShillDictionaryEntry nested_shill_dictionaries[] = { | 259 const NestedShillDictionaryEntry nested_shill_dictionaries[] = { |
265 { &kCellularApnSignature, cellular_apn_path_entries }, | 260 {&kCellularApnSignature, cellular_apn_path_entries}, |
266 { &kStaticIPConfigSignature, static_ip_config_path_entries }, | 261 {&kStaticIPConfigSignature, static_ip_config_path_entries}, |
267 { NULL } | 262 {NULL}}; |
268 }; | |
269 | 263 |
270 } // namespace | 264 } // namespace |
271 | 265 |
272 const StringTranslationEntry kNetworkTypeTable[] = { | 266 const StringTranslationEntry kNetworkTypeTable[] = { |
273 // This mapping is ensured in the translation code. | 267 // This mapping is ensured in the translation code. |
274 // { network_type::kEthernet, shill::kTypeEthernet }, | 268 // { network_type::kEthernet, shill::kTypeEthernet }, |
275 // { network_type::kEthernet, shill::kTypeEthernetEap }, | 269 // { network_type::kEthernet, shill::kTypeEthernetEap }, |
276 { ::onc::network_type::kWiFi, shill::kTypeWifi}, | 270 {::onc::network_type::kWiFi, shill::kTypeWifi}, |
277 { ::onc::network_type::kWimax, shill::kTypeWimax}, | 271 {::onc::network_type::kWimax, shill::kTypeWimax}, |
278 { ::onc::network_type::kCellular, shill::kTypeCellular}, | 272 {::onc::network_type::kCellular, shill::kTypeCellular}, |
279 { ::onc::network_type::kVPN, shill::kTypeVPN}, | 273 {::onc::network_type::kVPN, shill::kTypeVPN}, |
280 {NULL}}; | 274 {NULL}}; |
281 | 275 |
282 const StringTranslationEntry kVPNTypeTable[] = { | 276 const StringTranslationEntry kVPNTypeTable[] = { |
283 { ::onc::vpn::kTypeL2TP_IPsec, shill::kProviderL2tpIpsec}, | 277 {::onc::vpn::kTypeL2TP_IPsec, shill::kProviderL2tpIpsec}, |
284 { ::onc::vpn::kOpenVPN, shill::kProviderOpenVpn}, | 278 {::onc::vpn::kOpenVPN, shill::kProviderOpenVpn}, |
285 { ::onc::vpn::kThirdPartyVpn, shill::kProviderThirdPartyVpn}, | 279 {::onc::vpn::kThirdPartyVpn, shill::kProviderThirdPartyVpn}, |
286 {NULL}}; | 280 {NULL}}; |
287 | 281 |
288 const StringTranslationEntry kWiFiSecurityTable[] = { | 282 const StringTranslationEntry kWiFiSecurityTable[] = { |
289 { ::onc::wifi::kSecurityNone, shill::kSecurityNone}, | 283 {::onc::wifi::kSecurityNone, shill::kSecurityNone}, |
290 { ::onc::wifi::kWEP_PSK, shill::kSecurityWep}, | 284 {::onc::wifi::kWEP_PSK, shill::kSecurityWep}, |
291 { ::onc::wifi::kWPA_PSK, shill::kSecurityPsk}, | 285 {::onc::wifi::kWPA_PSK, shill::kSecurityPsk}, |
292 { ::onc::wifi::kWPA_EAP, shill::kSecurity8021x}, | 286 {::onc::wifi::kWPA_EAP, shill::kSecurity8021x}, |
293 {NULL}}; | 287 {NULL}}; |
294 | 288 |
295 const StringTranslationEntry kEAPOuterTable[] = { | 289 const StringTranslationEntry kEAPOuterTable[] = { |
296 { ::onc::eap::kPEAP, shill::kEapMethodPEAP}, | 290 {::onc::eap::kPEAP, shill::kEapMethodPEAP}, |
297 { ::onc::eap::kEAP_TLS, shill::kEapMethodTLS}, | 291 {::onc::eap::kEAP_TLS, shill::kEapMethodTLS}, |
298 { ::onc::eap::kEAP_TTLS, shill::kEapMethodTTLS}, | 292 {::onc::eap::kEAP_TTLS, shill::kEapMethodTTLS}, |
299 { ::onc::eap::kLEAP, shill::kEapMethodLEAP}, | 293 {::onc::eap::kLEAP, shill::kEapMethodLEAP}, |
300 {NULL}}; | 294 {NULL}}; |
301 | 295 |
302 // Translation of the EAP.Inner field in case of EAP.Outer == PEAP | 296 // Translation of the EAP.Inner field in case of EAP.Outer == PEAP |
303 const StringTranslationEntry kEAP_PEAP_InnerTable[] = { | 297 const StringTranslationEntry kEAP_PEAP_InnerTable[] = { |
304 { ::onc::eap::kMD5, shill::kEapPhase2AuthPEAPMD5}, | 298 {::onc::eap::kMD5, shill::kEapPhase2AuthPEAPMD5}, |
305 { ::onc::eap::kMSCHAPv2, shill::kEapPhase2AuthPEAPMSCHAPV2}, {NULL}}; | 299 {::onc::eap::kMSCHAPv2, shill::kEapPhase2AuthPEAPMSCHAPV2}, |
| 300 {NULL}}; |
306 | 301 |
307 // Translation of the EAP.Inner field in case of EAP.Outer == TTLS | 302 // Translation of the EAP.Inner field in case of EAP.Outer == TTLS |
308 const StringTranslationEntry kEAP_TTLS_InnerTable[] = { | 303 const StringTranslationEntry kEAP_TTLS_InnerTable[] = { |
309 { ::onc::eap::kMD5, shill::kEapPhase2AuthTTLSMD5}, | 304 {::onc::eap::kMD5, shill::kEapPhase2AuthTTLSMD5}, |
310 { ::onc::eap::kMSCHAPv2, shill::kEapPhase2AuthTTLSMSCHAPV2}, | 305 {::onc::eap::kMSCHAPv2, shill::kEapPhase2AuthTTLSMSCHAPV2}, |
311 { ::onc::eap::kPAP, shill::kEapPhase2AuthTTLSPAP}, | 306 {::onc::eap::kPAP, shill::kEapPhase2AuthTTLSPAP}, |
312 {NULL}}; | 307 {NULL}}; |
313 | 308 |
314 const StringTranslationEntry kActivationStateTable[] = { | 309 const StringTranslationEntry kActivationStateTable[] = { |
315 { ::onc::cellular::kActivated, shill::kActivationStateActivated}, | 310 {::onc::cellular::kActivated, shill::kActivationStateActivated}, |
316 { ::onc::cellular::kActivating, shill::kActivationStateActivating}, | 311 {::onc::cellular::kActivating, shill::kActivationStateActivating}, |
317 { ::onc::cellular::kNotActivated, shill::kActivationStateNotActivated}, | 312 {::onc::cellular::kNotActivated, shill::kActivationStateNotActivated}, |
318 { ::onc::cellular::kPartiallyActivated, | 313 {::onc::cellular::kPartiallyActivated, |
319 shill::kActivationStatePartiallyActivated}, | 314 shill::kActivationStatePartiallyActivated}, |
320 {NULL}}; | 315 {NULL}}; |
321 | 316 |
322 const StringTranslationEntry kRoamingStateTable[] = { | 317 const StringTranslationEntry kRoamingStateTable[] = { |
323 { ::onc::cellular::kRoamingHome, shill::kRoamingStateHome}, | 318 {::onc::cellular::kRoamingHome, shill::kRoamingStateHome}, |
324 { ::onc::cellular::kRoamingRoaming, shill::kRoamingStateRoaming}, | 319 {::onc::cellular::kRoamingRoaming, shill::kRoamingStateRoaming}, |
325 {NULL}}; | 320 {NULL}}; |
326 | 321 |
327 // This must contain only Shill Device properties and no Service properties. | 322 // This must contain only Shill Device properties and no Service properties. |
328 // For Service properties see cellular_fields. | 323 // For Service properties see cellular_fields. |
329 const FieldTranslationEntry kCellularDeviceTable[] = { | 324 const FieldTranslationEntry kCellularDeviceTable[] = { |
330 // This field is converted during translation, see onc_translator_*. | 325 // This field is converted during translation, see onc_translator_*. |
331 // { ::onc::cellular::kAPNList, shill::kCellularApnListProperty}, | 326 // { ::onc::cellular::kAPNList, shill::kCellularApnListProperty}, |
332 { ::onc::cellular::kAllowRoaming, shill::kCellularAllowRoamingProperty}, | 327 {::onc::cellular::kAllowRoaming, shill::kCellularAllowRoamingProperty}, |
333 { ::onc::cellular::kCarrier, shill::kCarrierProperty}, | 328 {::onc::cellular::kCarrier, shill::kCarrierProperty}, |
334 { ::onc::cellular::kESN, shill::kEsnProperty}, | 329 {::onc::cellular::kESN, shill::kEsnProperty}, |
335 { ::onc::cellular::kFamily, shill::kTechnologyFamilyProperty}, | 330 {::onc::cellular::kFamily, shill::kTechnologyFamilyProperty}, |
336 { ::onc::cellular::kFirmwareRevision, shill::kFirmwareRevisionProperty}, | 331 {::onc::cellular::kFirmwareRevision, shill::kFirmwareRevisionProperty}, |
337 // This field is converted during translation, see onc_translator_*. | 332 // This field is converted during translation, see onc_translator_*. |
338 // { ::onc::cellular::kFoundNetworks, shill::kFoundNetworksProperty}, | 333 // { ::onc::cellular::kFoundNetworks, shill::kFoundNetworksProperty}, |
339 { ::onc::cellular::kHardwareRevision, shill::kHardwareRevisionProperty}, | 334 {::onc::cellular::kHardwareRevision, shill::kHardwareRevisionProperty}, |
340 // This field is converted during translation, see onc_translator_*. | 335 // This field is converted during translation, see onc_translator_*. |
341 // { ::onc::cellular::kHomeProvider, shill::kHomeProviderProperty}, | 336 // { ::onc::cellular::kHomeProvider, shill::kHomeProviderProperty}, |
342 { ::onc::cellular::kICCID, shill::kIccidProperty}, | 337 {::onc::cellular::kICCID, shill::kIccidProperty}, |
343 { ::onc::cellular::kIMEI, shill::kImeiProperty}, | 338 {::onc::cellular::kIMEI, shill::kImeiProperty}, |
344 { ::onc::cellular::kIMSI, shill::kImsiProperty}, | 339 {::onc::cellular::kIMSI, shill::kImsiProperty}, |
345 { ::onc::cellular::kManufacturer, shill::kManufacturerProperty}, | 340 {::onc::cellular::kManufacturer, shill::kManufacturerProperty}, |
346 { ::onc::cellular::kMDN, shill::kMdnProperty}, | 341 {::onc::cellular::kMDN, shill::kMdnProperty}, |
347 { ::onc::cellular::kMEID, shill::kMeidProperty}, | 342 {::onc::cellular::kMEID, shill::kMeidProperty}, |
348 { ::onc::cellular::kMIN, shill::kMinProperty}, | 343 {::onc::cellular::kMIN, shill::kMinProperty}, |
349 { ::onc::cellular::kModelID, shill::kModelIDProperty}, | 344 {::onc::cellular::kModelID, shill::kModelIDProperty}, |
350 { ::onc::cellular::kPRLVersion, shill::kPRLVersionProperty}, | 345 {::onc::cellular::kPRLVersion, shill::kPRLVersionProperty}, |
351 // This field is converted during translation, see onc_translator_*. | 346 // This field is converted during translation, see onc_translator_*. |
352 // { ::onc::cellular::kSIMLockStatus, shill::kSIMLockStatusProperty}, | 347 // { ::onc::cellular::kSIMLockStatus, shill::kSIMLockStatusProperty}, |
353 { ::onc::cellular::kSIMPresent, shill::kSIMPresentProperty}, | 348 {::onc::cellular::kSIMPresent, shill::kSIMPresentProperty}, |
354 { ::onc::cellular::kSupportedCarriers, shill::kSupportedCarriersProperty}, | 349 {::onc::cellular::kSupportedCarriers, shill::kSupportedCarriersProperty}, |
355 { ::onc::cellular::kSupportNetworkScan, shill::kSupportNetworkScanProperty}, | 350 {::onc::cellular::kSupportNetworkScan, shill::kSupportNetworkScanProperty}, |
356 {NULL}}; | 351 {NULL}}; |
357 | 352 |
358 const FieldTranslationEntry* GetFieldTranslationTable( | 353 const FieldTranslationEntry* GetFieldTranslationTable( |
359 const OncValueSignature& onc_signature) { | 354 const OncValueSignature& onc_signature) { |
360 for (const OncValueTranslationEntry* it = onc_value_translation_table; | 355 for (const OncValueTranslationEntry* it = onc_value_translation_table; |
361 it->onc_signature != NULL; ++it) { | 356 it->onc_signature != NULL; ++it) { |
362 if (it->onc_signature == &onc_signature) | 357 if (it->onc_signature == &onc_signature) |
363 return it->field_translation_table; | 358 return it->field_translation_table; |
364 } | 359 } |
365 return NULL; | 360 return NULL; |
(...skipping 11 matching lines...) Expand all Loading... |
377 } | 372 } |
378 break; | 373 break; |
379 } | 374 } |
380 } | 375 } |
381 return shill_property_path; | 376 return shill_property_path; |
382 } | 377 } |
383 | 378 |
384 bool GetShillPropertyName(const std::string& onc_field_name, | 379 bool GetShillPropertyName(const std::string& onc_field_name, |
385 const FieldTranslationEntry table[], | 380 const FieldTranslationEntry table[], |
386 std::string* shill_property_name) { | 381 std::string* shill_property_name) { |
387 for (const FieldTranslationEntry* it = table; | 382 for (const FieldTranslationEntry* it = table; it->onc_field_name != NULL; |
388 it->onc_field_name != NULL; ++it) { | 383 ++it) { |
389 if (it->onc_field_name != onc_field_name) | 384 if (it->onc_field_name != onc_field_name) |
390 continue; | 385 continue; |
391 *shill_property_name = it->shill_property_name; | 386 *shill_property_name = it->shill_property_name; |
392 return true; | 387 return true; |
393 } | 388 } |
394 return false; | 389 return false; |
395 } | 390 } |
396 | 391 |
397 bool TranslateStringToShill(const StringTranslationEntry table[], | 392 bool TranslateStringToShill(const StringTranslationEntry table[], |
398 const std::string& onc_value, | 393 const std::string& onc_value, |
(...skipping 16 matching lines...) Expand all Loading... |
415 continue; | 410 continue; |
416 *onc_value = table[i].onc_value; | 411 *onc_value = table[i].onc_value; |
417 return true; | 412 return true; |
418 } | 413 } |
419 LOG(ERROR) << "Value '" << shill_value << "' cannot be translated to ONC"; | 414 LOG(ERROR) << "Value '" << shill_value << "' cannot be translated to ONC"; |
420 return false; | 415 return false; |
421 } | 416 } |
422 | 417 |
423 } // namespace onc | 418 } // namespace onc |
424 } // namespace chromeos | 419 } // namespace chromeos |
OLD | NEW |