Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions backend/internal/apiserver/apiserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,19 @@ func (srv *APIServer) Listen() error {
handler = srv.handlerMiddleware(handler)
}

protocols := http.Protocols{}
protocols.SetHTTP1(true)
if srv.cfg.ServerEnableHTTP2Unencrypted {
protocols.SetUnencryptedHTTP2(true)
}
srv.instance = &http.Server{
Addr: addr,
Handler: handler,
BaseContext: func(net.Listener) context.Context {
return srv.baseContext
},
ReadHeaderTimeout: 5 * time.Second,
Protocols: &protocols,
}

srv.log.Info("running ListenAndServe", "port", port, "apipath", srv.rootRoute)
Expand Down
6 changes: 6 additions & 0 deletions backend/internal/config/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,12 @@ func (b *ConfigBuilder) initWebServer(cfg *Config) error {
corsEnabled.LogIfFallback(b.logger)
cfg.CORSEnabled = corsEnabled.Value

serverEnableHTTP2Unencrypted := b.props.ServerEnableHTTP2Unencrypted()
if err := serverEnableHTTP2Unencrypted.Err(); err != nil {
return err
}
cfg.ServerEnableHTTP2Unencrypted = serverEnableHTTP2Unencrypted.Value

return nil
}

Expand Down
2 changes: 2 additions & 0 deletions backend/internal/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ type Config struct {
TLSRelayClientKeyFile string

relayClientConfig certloader.ClientConfigBuilder

ServerEnableHTTP2Unencrypted bool
}

func New(log *slog.Logger, propGetters PropGetters) *ConfigBuilder {
Expand Down
29 changes: 15 additions & 14 deletions backend/internal/config/prop_getters.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,21 @@ import (
)

type PropGetters struct {
GopsEnabled EnvVarGetter[bool]
GopsPort EnvVarGetter[uint16]
CorsEnabled EnvVarGetter[bool]
DebugLogs EnvVarGetter[bool]
RelayAddr EnvVarGetter[string]
UIServerPort EnvVarGetter[uint16]
TLSToRelayEnabled EnvVarGetter[bool]
TLSToRelayServerName EnvVarGetter[string]
TLSToRelayCACertFiles EnvVarGetter[string]
TLSToRelayClientCertFile EnvVarGetter[string]
TLSToRelayClientKeyFile EnvVarGetter[string]
ClientPollDelays []time.Duration
E2ETestModeEnabled EnvVarGetter[bool]
E2ELogfilesBasepath EnvVarGetter[string]
GopsEnabled EnvVarGetter[bool]
GopsPort EnvVarGetter[uint16]
CorsEnabled EnvVarGetter[bool]
DebugLogs EnvVarGetter[bool]
RelayAddr EnvVarGetter[string]
UIServerPort EnvVarGetter[uint16]
TLSToRelayEnabled EnvVarGetter[bool]
TLSToRelayServerName EnvVarGetter[string]
TLSToRelayCACertFiles EnvVarGetter[string]
TLSToRelayClientCertFile EnvVarGetter[string]
TLSToRelayClientKeyFile EnvVarGetter[string]
ClientPollDelays []time.Duration
E2ETestModeEnabled EnvVarGetter[bool]
E2ELogfilesBasepath EnvVarGetter[string]
ServerEnableHTTP2Unencrypted EnvVarGetter[bool]
}

type EnvVarGetter[T any] func() EnvVarResult[T]
Expand Down
1 change: 1 addition & 0 deletions backend/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ func main() {
TLSToRelayClientKeyFile: config.StrOr("TLS_RELAY_CLIENT_KEY_FILE", ""),
E2ETestModeEnabled: config.BoolOr("E2E_TEST_MODE", false),
E2ELogfilesBasepath: config.StrOr("E2E_LOGFILES_BASEPATH", ""),
ServerEnableHTTP2Unencrypted: config.BoolOr("SERVER_ENABLE_HTTP2_UNENCRYPTED", false),
}).Build()

if err != nil {
Expand Down
Loading