Index: chrome/browser/chromeos/cros/network_library.cc |
=================================================================== |
--- chrome/browser/chromeos/cros/network_library.cc (revision 113491) |
+++ chrome/browser/chromeos/cros/network_library.cc (working copy) |
@@ -1744,7 +1744,8 @@ |
// virtual SetIPConfig implemented in derived classes. |
virtual void SwitchToPreferredNetwork() OVERRIDE; |
virtual bool LoadOncNetworks(const std::string& onc_blob, |
- const std::string& passcode) OVERRIDE; |
+ const std::string& passcode, |
+ std::string* error) OVERRIDE; |
virtual bool SetActiveNetwork(ConnectionType type, |
const std::string& service_path) OVERRIDE; |
@@ -2833,14 +2834,23 @@ |
} |
bool NetworkLibraryImplBase::LoadOncNetworks(const std::string& onc_blob, |
- const std::string& passcode) { |
+ const std::string& passcode, |
+ std::string* error) { |
// TODO(gspencer): Add support for decrypting onc files. crbug.com/19397 |
OncNetworkParser parser(onc_blob); |
+ if (!parser.parse_error().empty()) { |
+ if (error) |
+ *error = parser.parse_error(); |
+ return false; |
+ } |
+ |
for (int i = 0; i < parser.GetCertificatesSize(); i++) { |
// Insert each of the available certs into the certificate DB. |
if (!parser.ParseCertificate(i)) { |
DLOG(WARNING) << "Cannot parse certificate in ONC file"; |
+ if (error) |
+ *error = parser.parse_error(); |
return false; |
} |
} |
@@ -2850,6 +2860,8 @@ |
scoped_ptr<Network> network(parser.ParseNetwork(i)); |
if (!network.get()) { |
DLOG(WARNING) << "Cannot parse network in ONC file"; |
+ if (error) |
+ *error = parser.parse_error(); |
return false; |
} |
@@ -2867,7 +2879,14 @@ |
CallConfigureService(network->unique_id(), &dict); |
} |
- return parser.GetNetworkConfigsSize() != 0; |
+ |
+ if (parser.GetNetworkConfigsSize() == 0) { |
kmixter1
2011/12/10 15:13:09
rebase...
Charlie Lee
2011/12/14 17:02:20
Done.
|
+ if (error) |
+ *error = l10n_util::GetStringUTF8( |
+ IDS_NETWORK_CONFIG_ERROR_NETWORK_IMPORT); |
+ return false; |
+ } |
+ return true; |
} |
//////////////////////////////////////////////////////////////////////////// |
@@ -5100,7 +5119,7 @@ |
" ]," |
" \"Certificates\": []" |
"}"); |
- LoadOncNetworks(test_blob, ""); |
+ LoadOncNetworks(test_blob, "", NULL); |
} |
//////////////////////////////////////////////////////////////////////////// |