func (fctx *FrontingContext) Configure(pool *x509.CertPool, providers map[string]*Provider, defaultProviderID string, cacheFile string) error {
	return fctx.ConfigureWithHello(pool, providers, defaultProviderID, cacheFile, tls.ClientHelloID{})
}
Configure sets the masquerades to use, the trusted root CAs, and the
cache file for caching masquerades to set up direct domain fronting.
defaultProviderID is used when a masquerade without a provider is
encountered (eg in a cache file)
package fronted
import (
	"crypto/x509"
	"fmt"
	"net/http"
	"time"
	"github.com/getlantern/eventual"
	tls "github.com/refraction-networking/utls"
)
var (
	DefaultContext = NewFrontingContext("default")
)
func Configure(pool *x509.CertPool, providers map[string]*Provider, defaultProviderID string, cacheFile string) {
	if err := DefaultContext.Configure(pool, providers, defaultProviderID, cacheFile); err != nil {
		log.Errorf("Error configuring fronting %s context: %s!!", DefaultContext.name, err)
	}
}
func NewDirect(timeout time.Duration) (http.RoundTripper, bool) {
	return DefaultContext.NewDirect(timeout)
}
func CloseCache() {
	DefaultContext.CloseCache()
}
func NewFrontingContext(name string) *FrontingContext {
	return &FrontingContext{
		name:     name,
		instance: eventual.NewValue(),
	}
}
type FrontingContext struct {
	name     string
	instance eventual.Value
}