Signed-off-by: Alexander Morozov <lk4d4@docker.com>
| ... | ... |
@@ -461,6 +461,12 @@ func (s *Server) getEvents(version version.Version, w http.ResponseWriter, r *ht |
| 461 | 461 |
return err |
| 462 | 462 |
} |
| 463 | 463 |
} |
| 464 |
+ |
|
| 465 |
+ var closeNotify <-chan bool |
|
| 466 |
+ if closeNotifier, ok := w.(http.CloseNotifier); ok {
|
|
| 467 |
+ closeNotify = closeNotifier.CloseNotify() |
|
| 468 |
+ } |
|
| 469 |
+ |
|
| 464 | 470 |
for {
|
| 465 | 471 |
select {
|
| 466 | 472 |
case ev := <-l: |
| ... | ... |
@@ -473,6 +479,9 @@ func (s *Server) getEvents(version version.Version, w http.ResponseWriter, r *ht |
| 473 | 473 |
} |
| 474 | 474 |
case <-timer.C: |
| 475 | 475 |
return nil |
| 476 |
+ case <-closeNotify: |
|
| 477 |
+ logrus.Debug("Client disconnected, stop sending events")
|
|
| 478 |
+ return nil |
|
| 476 | 479 |
} |
| 477 | 480 |
} |
| 478 | 481 |
} |