| 126 | } |
| 127 | |
| 128 | func (c *Component) serveWeb(lis net.Listener) error { |
| 129 | var handler http.Handler = c |
| 130 | if _, isTCP := lis.(*net.TCPListener); isTCP { |
| 131 | handler = h2c.NewHandler(c, &http2.Server{}) |
| 132 | } |
| 133 | srv := http.Server{ |
| 134 | Handler: handler, |
| 135 | ReadTimeout: 120 * time.Second, |
| 136 | ReadHeaderTimeout: 5 * time.Second, |
| 137 | ErrorLog: log.New(io.Discard, "", 0), |
| 138 | } |
| 139 | go func() { |
| 140 | <-c.Context().Done() |
| 141 | srv.Close() |
| 142 | }() |
| 143 | return srv.Serve(lis) |
| 144 | } |
| 145 | |
| 146 | func (c *Component) webEndpoints() []Endpoint { |
| 147 | return []Endpoint{ |