// Copyright 2015 ISRG. All rights reserved // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. package ra import "github.com/letsencrypt/boulder/core" // TODO(jmhodges): remove once VA is deployed and stable with IsSafeDomain // replace with just a call to ra.VA.IsSafeDomain // DomainCheck is a little struct that allows the RA to call the VA's // IsSafeDomain if its not-nil, or fails open if not. This is so that the RA can // be deployed before the VA can respond to the IsSafeDomain RPC. type DomainCheck struct { VA core.ValidationAuthority } // IsSafe returns true if the VA's IsSafeDomain RPC says the domain is safe or // if DomainCheck is nil. func (d *DomainCheck) IsSafe(domain string) (bool, error) { // This nil check allows us to not actually call if d == nil { return true, nil } resp, err := d.VA.IsSafeDomain(&core.IsSafeDomainRequest{Domain: domain}) if err != nil { return false, err } return resp.IsSafe, nil }