reverse_proxy: Close idle connections on module unload

This commit is contained in:
Matthew Holt 2019-09-14 18:10:29 -06:00
parent f15f0d5839
commit db4c73dd58
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5
1 changed files with 11 additions and 2 deletions

View File

@ -123,6 +123,14 @@ func (h HTTPTransport) RoundTrip(req *http.Request) (*http.Response, error) {
return h.RoundTripper.RoundTrip(req)
}
// Cleanup implements caddy.CleanerUpper and closes any idle connections.
func (h HTTPTransport) Cleanup() error {
if ht, ok := h.RoundTripper.(*http.Transport); ok {
ht.CloseIdleConnections()
}
return nil
}
// TLSConfig holds configuration related to the
// TLS configuration for the transport/client.
type TLSConfig struct {
@ -203,6 +211,7 @@ type KeepAlive struct {
// Interface guards
var (
_ caddy.Provisioner = (*HTTPTransport)(nil)
_ http.RoundTripper = (*HTTPTransport)(nil)
_ caddy.Provisioner = (*HTTPTransport)(nil)
_ http.RoundTripper = (*HTTPTransport)(nil)
_ caddy.CleanerUpper = (*HTTPTransport)(nil)
)