in go/wtl/proxy/proxy.go [82:133]
func New(env environment.Env, m *metadata.Metadata, d diagnostics.Diagnostics, httpPort, httpsPort int) (*Proxy, error) {
fqdn, err := httphelper.FQDN()
if err != nil {
return nil, errors.New(compName, err)
}
httpAddress := net.JoinHostPort(fqdn, strconv.Itoa(httpPort))
httpsAddress := ""
certs := newCerts(m)
if certs != nil {
httpsAddress = net.JoinHostPort(fqdn, strconv.Itoa(httpsPort))
} else {
httpsPort = -1
}
p := &Proxy{
Diagnostics: d,
Env: env,
Metadata: m,
HTTPAddress: httpAddress,
HTTPSAddress: httpsAddress,
httpPort: httpPort,
httpsPort: httpsPort,
certs: certs,
}
mux := http.NewServeMux()
for route, provider := range handlerProviders {
h, err := provider(p)
if err != nil {
return nil, err
}
p.handlers = append(p.handlers, h)
mux.Handle(route, h)
}
p.httpSrv = &http.Server{
Addr: ":" + strconv.Itoa(p.httpPort),
Handler: mux,
}
if p.certs != nil {
p.httpsSrv = &http.Server{
Addr: ":" + strconv.Itoa(p.httpsPort),
Handler: mux,
}
}
return p, nil
}