package server import "time" // Configuration represents the server configuration. type Configuration struct { Timeout TimeoutConfiguration `json:"timeouts"` } // TimeoutConfiguration lets you configure the different timeout durations. type TimeoutConfiguration struct { Idle time.Duration `json:"idle"` Read time.Duration `json:"read"` ReadHeader time.Duration `json:"readHeader"` Write time.Duration `json:"write"` Shutdown time.Duration `json:"shutdown"` } // Reset resets all fields to the default configuration. func defaultConfig() Configuration { return Configuration{ Timeout: TimeoutConfiguration{ Idle: 3 * time.Minute, Write: 2 * time.Minute, Read: 5 * time.Second, ReadHeader: 5 * time.Second, Shutdown: 250 * time.Millisecond, }, } }