From bf247186fb9eb205d72d8af8bb69f42fb49dfbcc Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Mon, 18 Nov 2024 09:23:00 -0700 Subject: [PATCH] refactor common code --- config/envoyconfig/listeners_main.go | 39 ++++++++++++++++------------ 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/config/envoyconfig/listeners_main.go b/config/envoyconfig/listeners_main.go index d1676a27e..0bbd14134 100644 --- a/config/envoyconfig/listeners_main.go +++ b/config/envoyconfig/listeners_main.go @@ -40,16 +40,11 @@ func (b *Builder) buildMainInsecureListener( li.ListenerFilters = append(li.ListenerFilters, ProxyProtocolFilter()) } - filter, err := b.buildMainHTTPConnectionManagerFilter(ctx, cfg, fullyStatic) + filterChain, err := b.buildMainHTTPConnectionManagerFilterChain(ctx, cfg, fullyStatic, nil) if err != nil { return nil, err } - - li.FilterChains = []*envoy_config_listener_v3.FilterChain{{ - Filters: []*envoy_config_listener_v3.Filter{ - filter, - }, - }} + li.FilterChains = append(li.FilterChains, filterChain) return li, nil } @@ -76,11 +71,6 @@ func (b *Builder) buildMainTLSListener( // filter chains li.FilterChains = append(li.FilterChains, b.buildACMETLSALPNFilterChain()) - filter, err := b.buildMainHTTPConnectionManagerFilter(ctx, cfg, fullyStatic) - if err != nil { - return nil, err - } - allCertificates, err := getAllCertificates(cfg) if err != nil { return nil, err @@ -91,14 +81,31 @@ func (b *Builder) buildMainTLSListener( return nil, err } - li.FilterChains = append(li.FilterChains, &envoy_config_listener_v3.FilterChain{ - Filters: []*envoy_config_listener_v3.Filter{filter}, - TransportSocket: newDownstreamTLSTransportSocket(tlsContext), - }) + filterChain, err := b.buildMainHTTPConnectionManagerFilterChain(ctx, cfg, fullyStatic, newDownstreamTLSTransportSocket(tlsContext)) + if err != nil { + return nil, err + } + li.FilterChains = append(li.FilterChains, filterChain) return li, nil } +func (b *Builder) buildMainHTTPConnectionManagerFilterChain( + ctx context.Context, + cfg *config.Config, + fullyStatic bool, + transportSocket *envoy_config_core_v3.TransportSocket, +) (*envoy_config_listener_v3.FilterChain, error) { + filter, err := b.buildMainHTTPConnectionManagerFilter(ctx, cfg, fullyStatic) + if err != nil { + return nil, err + } + return &envoy_config_listener_v3.FilterChain{ + Filters: []*envoy_config_listener_v3.Filter{filter}, + TransportSocket: transportSocket, + }, nil +} + func (b *Builder) buildMainHTTPConnectionManagerFilter( ctx context.Context, cfg *config.Config,