@@ -24,7 +24,8 @@ type Config struct {
2424 TLSKeyPath string `toml:"tls_key_path" xml:"tls_key_path"`
2525}
2626
27- func defaultConfig () * Config {
27+ // DefaultConfig returns the default configuration for the HTTP server.
28+ func DefaultConfig () * Config {
2829 return & Config {
2930 ListenAddr : DefaultListenAddr ,
3031 ReadTimeout : DefaultReadTimeout ,
@@ -35,24 +36,29 @@ func defaultConfig() *Config {
3536 }
3637}
3738
38- func validateConfig (config * Config ) {
39- if config .ReadTimeout <= 0 {
40- config .ReadTimeout = DefaultReadTimeout
39+ // Setup fills empty listen address and any zero timeouts or limits so logs and runtime match.
40+ func (c * Config ) Setup () {
41+ if c .ListenAddr == "" {
42+ c .ListenAddr = DefaultListenAddr
4143 }
4244
43- if config . ReadHeaderTimeout <= 0 {
44- config . ReadHeaderTimeout = DefaultReadHeaderTimeout
45+ if c . ReadTimeout <= 0 {
46+ c . ReadTimeout = DefaultReadTimeout
4547 }
4648
47- if config . WriteTimeout <= 0 {
48- config . WriteTimeout = DefaultWriteTimeout
49+ if c . ReadHeaderTimeout <= 0 {
50+ c . ReadHeaderTimeout = DefaultReadHeaderTimeout
4951 }
5052
51- if config . IdleTimeout <= 0 {
52- config . IdleTimeout = DefaultIdleTimeout
53+ if c . WriteTimeout <= 0 {
54+ c . WriteTimeout = DefaultWriteTimeout
5355 }
5456
55- if config .MaxHeaderBytes <= 0 {
56- config .MaxHeaderBytes = DefaultMaxHeaderBytes
57+ if c .IdleTimeout <= 0 {
58+ c .IdleTimeout = DefaultIdleTimeout
59+ }
60+
61+ if c .MaxHeaderBytes <= 0 {
62+ c .MaxHeaderBytes = DefaultMaxHeaderBytes
5763 }
5864}
0 commit comments