New creates a new HTTP server with the given settings. It returns an error if one of the settings is not valid.
(settings Settings)
| 21 | // New creates a new HTTP server with the given settings. |
| 22 | // It returns an error if one of the settings is not valid. |
| 23 | func New(settings Settings) (s *Server, err error) { |
| 24 | settings.SetDefaults() |
| 25 | |
| 26 | if err = settings.Validate(); err != nil { |
| 27 | return nil, fmt.Errorf("http server settings validation failed: %w", err) |
| 28 | } |
| 29 | |
| 30 | return &Server{ |
| 31 | address: settings.Address, |
| 32 | addressSet: make(chan struct{}), |
| 33 | handler: settings.Handler, |
| 34 | logger: settings.Logger, |
| 35 | readHeaderTimeout: settings.ReadHeaderTimeout, |
| 36 | readTimeout: settings.ReadTimeout, |
| 37 | shutdownTimeout: settings.ShutdownTimeout, |
| 38 | }, nil |
| 39 | } |