INNER CODE UNIT · Go
tlsConfig
daptin/daptin · main.go:587
tlsConfig := &tls.Config{GetCertificate: func(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
cert, ok := keyPairMap[info.ServerName]
if !ok {
return nil, fmt.Errorf("certificate not found for hostname [%v]", info.ServerName)
}
return &cert, nil
}}
httpsListener, listenErr := net.Listen("tcp", *httpsPort)
if listenErr != nil {
log.Fatalf("failed to listen on HTTPS address %s: %v", *httpsPort, listenErr)
}
tlsServer := &http.Server{Addr: *httpsPort, Handler: gate, TLSConfig: tlsConfig}
httpServers = append(httpServers, tlsServer)
go func() {
listener := tls.NewListener(tracker.Wrap(httpsListener), tlsConfig)
if serveErr := tlsServer.Serve(listener); serveErr != nil && !errors.Is(serveErr, http.ErrServerClosed) {
serveErrors <- fmt.Errorf("HTTPS server: %w", serveErr)
}