-
Notifications
You must be signed in to change notification settings - Fork 895
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
GODRIVER-2050 - Add settable http.Clients and gracefully close provid…
…ed defaults (#1093) Co-authored-by: Benjamin Rewis <[email protected]> Co-authored-by: Matt Dale <[email protected]>
- Loading branch information
1 parent
edfc51c
commit 4a22ce6
Showing
18 changed files
with
222 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
// Copyright (C) MongoDB, Inc. 2022-present. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); you may | ||
// not use this file except in compliance with the License. You may obtain | ||
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
package internal // import "go.mongodb.org/mongo-driver/internal" | ||
|
||
import ( | ||
"net/http" | ||
"time" | ||
) | ||
|
||
// DefaultHTTPClient is the default HTTP client used across the driver. | ||
var DefaultHTTPClient = &http.Client{ | ||
// TODO(GODRIVER-2623): Use "http.DefaultTransport.Clone" once we change the minimum supported Go version to 1.13. | ||
Transport: &http.Transport{ | ||
Proxy: http.ProxyFromEnvironment, | ||
MaxIdleConns: 100, | ||
IdleConnTimeout: 90 * time.Second, | ||
TLSHandshakeTimeout: 10 * time.Second, | ||
ExpectContinueTimeout: 1 * time.Second, | ||
}, | ||
} | ||
|
||
// CloseIdleHTTPConnections closes any connections which were previously | ||
// connected from previous requests but are now sitting idle in | ||
// a "keep-alive" state. It does not interrupt any connections currently | ||
// in use. | ||
// Borrowed from go standard library. | ||
func CloseIdleHTTPConnections(client *http.Client) { | ||
type closeIdler interface { | ||
CloseIdleConnections() | ||
} | ||
if tr, ok := client.Transport.(closeIdler); ok { | ||
tr.CloseIdleConnections() | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.