Compare commits

...

6 Commits

Author SHA1 Message Date
Kubernetes Publisher
1692bdde78 Merge pull request #63219 from liggitt/automated-cherry-pick-of-#62654-upstream-release-1.9
Automatic merge from submit-queue.

Automated cherry pick of #62654: Ensure service routing resolves kubernetes.default.svc

Cherry pick of #62654 on release-1.9.

#62654: Ensure service routing resolves kubernetes.default.svc

```release-note
Fixes the kubernetes.default.svc loopback service resolution to use a loopback configuration.
```

Kubernetes-commit: b6222f0609982f7b1ecf7caeef434e8f61e49194
2018-05-15 14:44:34 +00:00
Kubernetes Publisher
e35117bf8f Merge pull request #63626 from roycaihw/release-1.9
Automatic merge from submit-queue.

Manual cherrypick of kube-openapi changes for release-1.9

**What this PR does / why we need it**:
Cherry-picks https://github.com/kubernetes/kube-openapi/pull/64 and https://github.com/kubernetes/kube-openapi/pull/67
Fixes bugs that make apiserver panic when aggregating valid but not well formed OpenAPI spec (with empty `Paths`/`Definitions`)

**Release note**:

```release-note
Fixes bugs that make apiserver panic when aggregating valid but not well formed OpenAPI spec
```

/cc @mbohlool
/sig api-machinery

Kubernetes-commit: 8d48604c2eca912159636be258a5e68bfc4c6643
2018-05-10 14:42:28 +00:00
Haowei Cai
0401348fc7 generated
Kubernetes-commit: 446c4f107857f2e3589f8ce1632ad697161aba11
2018-05-09 15:22:42 -07:00
Kubernetes Publisher
65b43df093 sync: update godeps 2018-04-17 14:41:10 +00:00
Jordan Liggitt
2eeae9f2aa ensure tls server name is used in transport
Kubernetes-commit: 4aea02a0f30cab2e2729459901baf79db5020b0d
2018-04-17 00:59:27 -04:00
Jordan Liggitt
be703b4263 distinguish custom dialers in transport cache
Kubernetes-commit: e2fb33bdb8d2b043d3c88b854bfaad0467da8db6
2018-04-17 00:58:56 -04:00
5 changed files with 107 additions and 93 deletions

170
Godeps/Godeps.json generated
View File

@@ -1,7 +1,7 @@
{
"ImportPath": "k8s.io/client-go",
"GoVersion": "go1.9",
"GodepVersion": "v79",
"GodepVersion": "v80",
"Packages": [
"./..."
],
@@ -372,339 +372,339 @@
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1alpha1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/apps/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/apps/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/apps/v1beta2",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/authentication/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/authentication/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/authorization/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/authorization/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/autoscaling/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/batch/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/batch/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/batch/v2alpha1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/certificates/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/core/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/events/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/extensions/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/imagepolicy/v1alpha1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/networking/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/policy/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/rbac/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/rbac/v1alpha1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/rbac/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/scheduling/v1alpha1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/settings/v1alpha1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/storage/v1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/storage/v1alpha1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/api/storage/v1beta1",
"Rev": "acf347b865f29325eb61f4cd2df11e86e073a5ee"
"Rev": "9273ee02527c608cecc74969b3e489f5dba686da"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "19e3f5aa3adca672c153d324e6b7d82ff8935f03"
"Rev": "21efb2924c7cf1920f76af05b1fd6a325bf46dfc"
},
{
"ImportPath": "k8s.io/kube-openapi/pkg/common",
"Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1"
"Rev": "7ee50c0aa8059d610950c952a9ed7a5e33ab336a"
},
{
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto",
"Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1"
"Rev": "7ee50c0aa8059d610950c952a9ed7a5e33ab336a"
}
]
}

View File

@@ -59,7 +59,7 @@ func (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) {
return nil, err
}
// The options didn't require a custom TLS config
if tlsConfig == nil {
if tlsConfig == nil && config.Dial == nil {
return http.DefaultTransport, nil
}
@@ -88,5 +88,5 @@ func tlsConfigKey(c *Config) (string, error) {
return "", err
}
// Only include the things that actually affect the tls.Config
return fmt.Sprintf("%v/%x/%x/%x/%v", c.TLS.Insecure, c.TLS.CAData, c.TLS.CertData, c.TLS.KeyData, c.TLS.ServerName), nil
return fmt.Sprintf("%v/%x/%x/%x/%v/%v", c.TLS.Insecure, c.TLS.CAData, c.TLS.CertData, c.TLS.KeyData, c.TLS.ServerName, fmt.Sprintf("%p", c.Dial)), nil
}

View File

@@ -17,6 +17,7 @@ limitations under the License.
package transport
import (
"net"
"net/http"
"testing"
)
@@ -53,6 +54,8 @@ func TestTLSConfigKey(t *testing.T) {
// Make sure config fields that affect the tls config affect the cache key
uniqueConfigurations := map[string]*Config{
"no tls": {},
"dialer": {Dial: net.Dial},
"dialer2": {Dial: func(network, address string) (net.Conn, error) { return nil, nil }},
"insecure": {TLS: TLSConfig{Insecure: true}},
"cadata 1": {TLS: TLSConfig{CAData: []byte{1}}},
"cadata 2": {TLS: TLSConfig{CAData: []byte{2}}},
@@ -104,11 +107,6 @@ func TestTLSConfigKey(t *testing.T) {
}
for nameA, valueA := range uniqueConfigurations {
for nameB, valueB := range uniqueConfigurations {
// Don't compare to ourselves
if nameA == nameB {
continue
}
keyA, err := tlsConfigKey(valueA)
if err != nil {
t.Errorf("Unexpected error for %q: %v", nameA, err)
@@ -119,6 +117,15 @@ func TestTLSConfigKey(t *testing.T) {
t.Errorf("Unexpected error for %q: %v", nameB, err)
continue
}
// Make sure we get the same key on the same config
if nameA == nameB {
if keyA != keyB {
t.Errorf("Expected identical cache keys for %q and %q, got:\n\t%s\n\t%s", nameA, nameB, keyA, keyB)
}
continue
}
if keyA == keyB {
t.Errorf("Expected unique cache keys for %q and %q, got:\n\t%s\n\t%s", nameA, nameB, keyA, keyB)
continue

View File

@@ -52,7 +52,7 @@ func New(config *Config) (http.RoundTripper, error) {
// TLSConfigFor returns a tls.Config that will provide the transport level security defined
// by the provided Config. Will return nil if no transport level security is requested.
func TLSConfigFor(c *Config) (*tls.Config, error) {
if !(c.HasCA() || c.HasCertAuth() || c.TLS.Insecure) {
if !(c.HasCA() || c.HasCertAuth() || c.TLS.Insecure || len(c.TLS.ServerName) > 0) {
return nil, nil
}
if c.HasCA() && c.TLS.Insecure {

View File

@@ -101,6 +101,13 @@ func TestNew(t *testing.T) {
Config: &Config{},
},
"server name": {
TLS: true,
Config: &Config{TLS: TLSConfig{
ServerName: "foo",
}},
},
"ca transport": {
TLS: true,
Config: &Config{