Support CloseNotifier for events
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
parent
521926f6c4
commit
9e7fc245a7
|
@ -461,6 +461,12 @@ func (s *Server) getEvents(version version.Version, w http.ResponseWriter, r *ht
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var closeNotify <-chan bool
|
||||||
|
if closeNotifier, ok := w.(http.CloseNotifier); ok {
|
||||||
|
closeNotify = closeNotifier.CloseNotify()
|
||||||
|
}
|
||||||
|
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case ev := <-l:
|
case ev := <-l:
|
||||||
|
@ -473,6 +479,9 @@ func (s *Server) getEvents(version version.Version, w http.ResponseWriter, r *ht
|
||||||
}
|
}
|
||||||
case <-timer.C:
|
case <-timer.C:
|
||||||
return nil
|
return nil
|
||||||
|
case <-closeNotify:
|
||||||
|
logrus.Debug("Client disconnected, stop sending events")
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue