|
|
|
@ -108,12 +108,12 @@ func Listen(ctx context.Context, address net.Address, port net.Port, streamSetti
|
|
|
|
|
config := tls.ConfigFromStreamSettings(streamSettings)
|
|
|
|
|
if config == nil {
|
|
|
|
|
// return nil, newError("TLS must be enabled for http transport.").AtWarning()
|
|
|
|
|
h2s:=&http2.Server{}
|
|
|
|
|
h2s := &http2.Server{}
|
|
|
|
|
|
|
|
|
|
server := &http.Server{
|
|
|
|
|
Addr: serial.Concat(address, ":", port),
|
|
|
|
|
Addr: serial.Concat(address, ":", port),
|
|
|
|
|
// TLSConfig: config.GetTLSConfig(tls.WithNextProto("h2")),
|
|
|
|
|
Handler: h2c.NewHandler(listener,h2s),
|
|
|
|
|
Handler: h2c.NewHandler(listener, h2s),
|
|
|
|
|
ReadHeaderTimeout: time.Second * 4,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -135,33 +135,31 @@ func Listen(ctx context.Context, address net.Address, port net.Port, streamSetti
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
return listener, nil
|
|
|
|
|
} else {
|
|
|
|
|
server := &http.Server{
|
|
|
|
|
Addr: serial.Concat(address, ":", port),
|
|
|
|
|
TLSConfig: config.GetTLSConfig(tls.WithNextProto("h2")),
|
|
|
|
|
Handler: listener,
|
|
|
|
|
ReadHeaderTimeout: time.Second * 4,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
listener.server = server
|
|
|
|
|
go func() {
|
|
|
|
|
tcpListener, err := internet.ListenSystem(ctx, &net.TCPAddr{
|
|
|
|
|
IP: address.IP(),
|
|
|
|
|
Port: int(port),
|
|
|
|
|
}, streamSettings.SocketSettings)
|
|
|
|
|
if err != nil {
|
|
|
|
|
newError("failed to listen on", address, ":", port).Base(err).WriteToLog(session.ExportIDToError(ctx))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
server := &http.Server{
|
|
|
|
|
Addr: serial.Concat(address, ":", port),
|
|
|
|
|
TLSConfig: config.GetTLSConfig(tls.WithNextProto("h2")),
|
|
|
|
|
Handler: listener,
|
|
|
|
|
ReadHeaderTimeout: time.Second * 4,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = server.ServeTLS(tcpListener, "", "")
|
|
|
|
|
if err != nil {
|
|
|
|
|
newError("stoping serving TLS").Base(err).WriteToLog(session.ExportIDToError(ctx))
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
listener.server = server
|
|
|
|
|
go func() {
|
|
|
|
|
tcpListener, err := internet.ListenSystem(ctx, &net.TCPAddr{
|
|
|
|
|
IP: address.IP(),
|
|
|
|
|
Port: int(port),
|
|
|
|
|
}, streamSettings.SocketSettings)
|
|
|
|
|
if err != nil {
|
|
|
|
|
newError("failed to listen on", address, ":", port).Base(err).WriteToLog(session.ExportIDToError(ctx))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return listener, nil
|
|
|
|
|
}
|
|
|
|
|
err = server.ServeTLS(tcpListener, "", "")
|
|
|
|
|
if err != nil {
|
|
|
|
|
newError("stoping serving TLS").Base(err).WriteToLog(session.ExportIDToError(ctx))
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
return listener, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|