Allow NewClient to run concurrently (#103)
diff --git a/whisk/client.go b/whisk/client.go
index c710efd..6797651 100644
--- a/whisk/client.go
+++ b/whisk/client.go
@@ -27,6 +27,7 @@
"github.com/apache/incubator-openwhisk-client-go/wski18n"
"io"
"io/ioutil"
+ "net"
"net/http"
"net/url"
"reflect"
@@ -214,10 +215,19 @@
}
// Use the defaultTransport as the transport basis to maintain proxy support
- // Make a copy of the defaultTransport so that the original defaultTransport is left alone
- defaultTransportCopy := *(http.DefaultTransport.(*http.Transport))
- defaultTransportCopy.TLSClientConfig = tlsConfig
- c.client.Transport = &defaultTransportCopy
+ c.client.Transport = &http.Transport{
+ Proxy: http.ProxyFromEnvironment,
+ DialContext: (&net.Dialer{
+ Timeout: 30 * time.Second,
+ KeepAlive: 30 * time.Second,
+ DualStack: true,
+ }).DialContext,
+ MaxIdleConns: 100,
+ IdleConnTimeout: 90 * time.Second,
+ TLSHandshakeTimeout: 10 * time.Second,
+ ExpectContinueTimeout: 1 * time.Second,
+ TLSClientConfig: tlsConfig,
+ }
return nil
}