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

Side by Side Diff: chromeos/network/onc/onc_translator_onc_to_shill.cc

Issue 482243002: Use Managed properties for Preferred and Provider. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix test Created 6 years, 4 months 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) 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 // The implementation of TranslateONCObjectToShill is structured in two parts: 5 // The implementation of TranslateONCObjectToShill is structured in two parts:
6 // - The recursion through the existing ONC hierarchy 6 // - The recursion through the existing ONC hierarchy
7 // see TranslateONCHierarchy 7 // see TranslateONCHierarchy
8 // - The local translation of an object depending on the associated signature 8 // - The local translation of an object depending on the associated signature
9 // see LocalTranslator::TranslateFields 9 // see LocalTranslator::TranslateFields
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 onc_object_(&onc_object), 48 onc_object_(&onc_object),
49 shill_dictionary_(shill_dictionary) { 49 shill_dictionary_(shill_dictionary) {
50 field_translation_table_ = GetFieldTranslationTable(onc_signature); 50 field_translation_table_ = GetFieldTranslationTable(onc_signature);
51 } 51 }
52 52
53 void TranslateFields(); 53 void TranslateFields();
54 54
55 private: 55 private:
56 void TranslateEthernet(); 56 void TranslateEthernet();
57 void TranslateOpenVPN(); 57 void TranslateOpenVPN();
58 void TranslateIPsec();
58 void TranslateVPN(); 59 void TranslateVPN();
59 void TranslateWiFi(); 60 void TranslateWiFi();
60 void TranslateEAP(); 61 void TranslateEAP();
61 void TranslateNetworkConfiguration(); 62 void TranslateNetworkConfiguration();
62 63
63 // Copies all entries from |onc_object_| to |shill_dictionary_| for which a 64 // Copies all entries from |onc_object_| to |shill_dictionary_| for which a
64 // translation (shill_property_name) is defined by |onc_signature_|. 65 // translation (shill_property_name) is defined by |onc_signature_|.
65 void CopyFieldsAccordingToSignature(); 66 void CopyFieldsAccordingToSignature();
66 67
67 // Adds |value| to |shill_dictionary| at the field shill_property_name given 68 // Adds |value| to |shill_dictionary| at the field shill_property_name given
(...skipping 19 matching lines...) Expand all
87 88
88 void LocalTranslator::TranslateFields() { 89 void LocalTranslator::TranslateFields() {
89 if (onc_signature_ == &kNetworkConfigurationSignature) 90 if (onc_signature_ == &kNetworkConfigurationSignature)
90 TranslateNetworkConfiguration(); 91 TranslateNetworkConfiguration();
91 else if (onc_signature_ == &kEthernetSignature) 92 else if (onc_signature_ == &kEthernetSignature)
92 TranslateEthernet(); 93 TranslateEthernet();
93 else if (onc_signature_ == &kVPNSignature) 94 else if (onc_signature_ == &kVPNSignature)
94 TranslateVPN(); 95 TranslateVPN();
95 else if (onc_signature_ == &kOpenVPNSignature) 96 else if (onc_signature_ == &kOpenVPNSignature)
96 TranslateOpenVPN(); 97 TranslateOpenVPN();
98 else if (onc_signature_ == &kIPsecSignature)
99 TranslateIPsec();
97 else if (onc_signature_ == &kWiFiSignature) 100 else if (onc_signature_ == &kWiFiSignature)
98 TranslateWiFi(); 101 TranslateWiFi();
99 else if (onc_signature_ == &kEAPSignature) 102 else if (onc_signature_ == &kEAPSignature)
100 TranslateEAP(); 103 TranslateEAP();
101 else 104 else
102 CopyFieldsAccordingToSignature(); 105 CopyFieldsAccordingToSignature();
103 } 106 }
104 107
105 void LocalTranslator::TranslateEthernet() { 108 void LocalTranslator::TranslateEthernet() {
106 std::string authentication; 109 std::string authentication;
107 onc_object_->GetStringWithoutPathExpansion(::onc::ethernet::kAuthentication, 110 onc_object_->GetStringWithoutPathExpansion(::onc::ethernet::kAuthentication,
108 &authentication); 111 &authentication);
109 112
110 const char* shill_type = shill::kTypeEthernet; 113 const char* shill_type = shill::kTypeEthernet;
111 if (authentication == ::onc::ethernet::k8021X) 114 if (authentication == ::onc::ethernet::k8021X)
112 shill_type = shill::kTypeEthernetEap; 115 shill_type = shill::kTypeEthernetEap;
113 shill_dictionary_->SetStringWithoutPathExpansion(shill::kTypeProperty, 116 shill_dictionary_->SetStringWithoutPathExpansion(shill::kTypeProperty,
114 shill_type); 117 shill_type);
115 118
116 CopyFieldsAccordingToSignature(); 119 CopyFieldsAccordingToSignature();
117 } 120 }
118 121
119 void LocalTranslator::TranslateOpenVPN() { 122 void LocalTranslator::TranslateOpenVPN() {
123 // SaveCredentials needs special handling when translating from Shill -> ONC
124 // so handle it explicitly here.
125 bool save_credentials;
126 if (onc_object_->GetBooleanWithoutPathExpansion(
127 ::onc::vpn::kSaveCredentials, &save_credentials)) {
128 shill_dictionary_->SetBooleanWithoutPathExpansion(
129 shill::kSaveCredentialsProperty, save_credentials);
130 }
120 // Shill supports only one RemoteCertKU but ONC a list. 131 // Shill supports only one RemoteCertKU but ONC a list.
121 // Copy only the first entry if existing. 132 // Copy only the first entry if existing.
122 const base::ListValue* certKUs = NULL; 133 const base::ListValue* certKUs = NULL;
123 std::string certKU; 134 std::string certKU;
124 if (onc_object_->GetListWithoutPathExpansion(::onc::openvpn::kRemoteCertKU, 135 if (onc_object_->GetListWithoutPathExpansion(::onc::openvpn::kRemoteCertKU,
125 &certKUs) && 136 &certKUs) &&
126 certKUs->GetString(0, &certKU)) { 137 certKUs->GetString(0, &certKU)) {
127 shill_dictionary_->SetStringWithoutPathExpansion( 138 shill_dictionary_->SetStringWithoutPathExpansion(
128 shill::kOpenVPNRemoteCertKUProperty, certKU); 139 shill::kOpenVPNRemoteCertKUProperty, certKU);
129 } 140 }
130 141
131 for (base::DictionaryValue::Iterator it(*onc_object_); !it.IsAtEnd(); 142 for (base::DictionaryValue::Iterator it(*onc_object_); !it.IsAtEnd();
132 it.Advance()) { 143 it.Advance()) {
133 scoped_ptr<base::Value> translated; 144 scoped_ptr<base::Value> translated;
134 if (it.key() == ::onc::vpn::kSaveCredentials || 145 if (it.key() == ::onc::openvpn::kRemoteCertKU ||
135 it.key() == ::onc::openvpn::kRemoteCertKU ||
136 it.key() == ::onc::openvpn::kServerCAPEMs) { 146 it.key() == ::onc::openvpn::kServerCAPEMs) {
137 translated.reset(it.value().DeepCopy()); 147 translated.reset(it.value().DeepCopy());
138 } else { 148 } else {
139 // Shill wants all Provider/VPN fields to be strings. 149 // Shill wants all Provider/VPN fields to be strings.
140 translated = ConvertValueToString(it.value()); 150 translated = ConvertValueToString(it.value());
141 } 151 }
142 AddValueAccordingToSignature(it.key(), translated.Pass()); 152 AddValueAccordingToSignature(it.key(), translated.Pass());
143 } 153 }
144 } 154 }
145 155
156 void LocalTranslator::TranslateIPsec() {
157 CopyFieldsAccordingToSignature();
158
159 // SaveCredentials needs special handling when translating from Shill -> ONC
160 // so handle it explicitly here.
161 bool save_credentials;
162 if (onc_object_->GetBooleanWithoutPathExpansion(
163 ::onc::vpn::kSaveCredentials, &save_credentials)) {
164 shill_dictionary_->SetBooleanWithoutPathExpansion(
165 shill::kSaveCredentialsProperty, save_credentials);
166 }
167 }
168
146 void LocalTranslator::TranslateVPN() { 169 void LocalTranslator::TranslateVPN() {
170 std::string host;
171 if (onc_object_->GetStringWithoutPathExpansion(::onc::vpn::kHost, &host)) {
172 shill_dictionary_->SetStringWithoutPathExpansion(
173 shill::kProviderHostProperty, host);
174 }
147 std::string type; 175 std::string type;
148 onc_object_->GetStringWithoutPathExpansion(::onc::vpn::kType, &type); 176 onc_object_->GetStringWithoutPathExpansion(::onc::vpn::kType, &type);
149 TranslateWithTableAndSet(type, kVPNTypeTable, shill::kProviderTypeProperty); 177 TranslateWithTableAndSet(type, kVPNTypeTable, shill::kProviderTypeProperty);
150 178
151 CopyFieldsAccordingToSignature(); 179 CopyFieldsAccordingToSignature();
152 } 180 }
153 181
154 void LocalTranslator::TranslateWiFi() { 182 void LocalTranslator::TranslateWiFi() {
155 std::string security; 183 std::string security;
156 onc_object_->GetStringWithoutPathExpansion(::onc::wifi::kSecurity, &security); 184 onc_object_->GetStringWithoutPathExpansion(::onc::wifi::kSecurity, &security);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 const OncValueSignature* onc_signature, 327 const OncValueSignature* onc_signature,
300 const base::DictionaryValue& onc_object) { 328 const base::DictionaryValue& onc_object) {
301 CHECK(onc_signature != NULL); 329 CHECK(onc_signature != NULL);
302 scoped_ptr<base::DictionaryValue> shill_dictionary(new base::DictionaryValue); 330 scoped_ptr<base::DictionaryValue> shill_dictionary(new base::DictionaryValue);
303 TranslateONCHierarchy(*onc_signature, onc_object, shill_dictionary.get()); 331 TranslateONCHierarchy(*onc_signature, onc_object, shill_dictionary.get());
304 return shill_dictionary.Pass(); 332 return shill_dictionary.Pass();
305 } 333 }
306 334
307 } // namespace onc 335 } // namespace onc
308 } // namespace chromeos 336 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698