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