| Index: chromeos/network/onc/onc_validator.cc
|
| diff --git a/chromeos/network/onc/onc_validator.cc b/chromeos/network/onc/onc_validator.cc
|
| index c3cd2bb3965afd6a156bec0cb303630a03c8cdd8..e3ea49a9daf7404cb2e3f39d054960075f227645 100644
|
| --- a/chromeos/network/onc/onc_validator.cc
|
| +++ b/chromeos/network/onc/onc_validator.cc
|
| @@ -122,6 +122,8 @@ scoped_ptr<base::DictionaryValue> Validator::MapObject(
|
| valid = ValidateIPsec(repaired.get());
|
| } else if (&signature == &kOpenVPNSignature) {
|
| valid = ValidateOpenVPN(repaired.get());
|
| + } else if (&signature == &kThirdPartyVPNSignature) {
|
| + valid = ValidateThirdPartyVPN(repaired.get());
|
| } else if (&signature == &kVerifyX509Signature) {
|
| valid = ValidateVerifyX509(repaired.get());
|
| } else if (&signature == &kCertificatePatternSignature) {
|
| @@ -683,7 +685,8 @@ bool Validator::ValidateWiFi(base::DictionaryValue* result) {
|
| bool Validator::ValidateVPN(base::DictionaryValue* result) {
|
| using namespace ::onc::vpn;
|
|
|
| - const char* const kValidTypes[] = {kIPsec, kTypeL2TP_IPsec, kOpenVPN};
|
| + const char* const kValidTypes[] = {
|
| + kIPsec, kTypeL2TP_IPsec, kOpenVPN, kThirdPartyVpn};
|
| const std::vector<const char*> valid_types(toVector(kValidTypes));
|
| if (FieldExistsAndHasNoValidValue(*result, ::onc::vpn::kType, valid_types))
|
| return false;
|
| @@ -698,6 +701,8 @@ bool Validator::ValidateVPN(base::DictionaryValue* result) {
|
| } else if (type == kTypeL2TP_IPsec) {
|
| all_required_exist &=
|
| RequireField(*result, kIPsec) && RequireField(*result, kL2TP);
|
| + } else if (type == kThirdPartyVpn) {
|
| + all_required_exist &= RequireField(*result, kThirdPartyVpn);
|
| }
|
|
|
| return !error_on_missing_field_ || all_required_exist;
|
| @@ -802,6 +807,13 @@ bool Validator::ValidateOpenVPN(base::DictionaryValue* result) {
|
| return !error_on_missing_field_ || all_required_exist;
|
| }
|
|
|
| +bool Validator::ValidateThirdPartyVPN(base::DictionaryValue* result) {
|
| + const bool all_required_exist =
|
| + RequireField(*result, ::onc::third_party_vpn::kExtensionID);
|
| +
|
| + return !error_on_missing_field_ || all_required_exist;
|
| +}
|
| +
|
| bool Validator::ValidateVerifyX509(base::DictionaryValue* result) {
|
| using namespace ::onc::verify_x509;
|
|
|
|
|