@@ -33,15 +33,19 @@ type Server struct {
3333
3434 listener net.Listener
3535 pprofServer * http.Server
36+ pprofEnabled bool
37+ pprofPort int
3638}
3739
3840// Config holds configuration for the proxy server
3941type Config struct {
40- HTTPPort int
41- RuleEngine rules.Evaluator
42- Auditor audit.Auditor
43- Logger * slog.Logger
44- TLSConfig * tls.Config
42+ HTTPPort int
43+ RuleEngine rules.Evaluator
44+ Auditor audit.Auditor
45+ Logger * slog.Logger
46+ TLSConfig * tls.Config
47+ PprofEnabled bool
48+ PprofPort int
4549}
4650
4751// NewProxyServer creates a new proxy server instance
@@ -52,6 +56,8 @@ func NewProxyServer(config Config) *Server {
5256 logger : config .Logger ,
5357 tlsConfig : config .TLSConfig ,
5458 httpPort : config .HTTPPort ,
59+ pprofEnabled : config .PprofEnabled ,
60+ pprofPort : config .PprofPort ,
5561 }
5662}
5763
@@ -63,19 +69,20 @@ func (p *Server) Start() error {
6369
6470 p .logger .Info ("Starting HTTP proxy with TLS termination" , "port" , p .httpPort )
6571
66- p .pprofServer = & http.Server {
67- Addr : ":6060" , // pprof port
68- Handler : http .DefaultServeMux ,
69- }
70-
71- // Start pprof server on a different port
72- go func () {
73- p .logger .Info ("Starting pprof server" , "port" , 6060 )
74-
75- if err := p .pprofServer .ListenAndServe (); err != nil && errors .Is (err , http .ErrServerClosed ) {
76- p .logger .Error ("pprof server error" , "error" , err )
72+ // Start pprof server if enabled
73+ if p .pprofEnabled {
74+ p .pprofServer = & http.Server {
75+ Addr : fmt .Sprintf (":%d" , p .pprofPort ),
76+ Handler : http .DefaultServeMux ,
7777 }
78- }()
78+
79+ go func () {
80+ p .logger .Info ("Starting pprof server" , "port" , p .pprofPort )
81+ if err := p .pprofServer .ListenAndServe (); err != nil && errors .Is (err , http .ErrServerClosed ) {
82+ p .logger .Error ("pprof server error" , "error" , err )
83+ }
84+ }()
85+ }
7986
8087 var err error
8188 p .listener , err = net .Listen ("tcp" , fmt .Sprintf (":%d" , p .httpPort ))
0 commit comments