aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdnan Maolood <[email protected]>2020-10-27 23:47:13 -0400
committerAdnan Maolood <[email protected]>2020-10-27 23:47:13 -0400
commite6072d8bbc42d7d37b648d7ef3b1169aa13ea7eb (patch)
tree01507eeb51dee806144ef6e8beb13480a56b2207
parentAdd Client.GetInput field (diff)
downloadgo-gemini-e6072d8bbc42d7d37b648d7ef3b1169aa13ea7eb.tar.xz
go-gemini-e6072d8bbc42d7d37b648d7ef3b1169aa13ea7eb.zip
Ensure absolute paths in client certificate store
-rw-r--r--cert.go6
-rw-r--r--examples/client.go2
2 files changed, 7 insertions, 1 deletions
diff --git a/cert.go b/cert.go
index 4f11fe6..da77478 100644
--- a/cert.go
+++ b/cert.go
@@ -77,6 +77,12 @@ type ClientCertificateStore struct {
func (c *ClientCertificateStore) Lookup(hostname, urlPath string) (*tls.Certificate, error) {
urlPath = path.Clean(urlPath)
+ if urlPath == "." {
+ urlPath = "/"
+ }
+ if urlPath[0] != '/' {
+ urlPath = "/" + urlPath
+ }
for {
cert, err := c.CertificateStore.Lookup(hostname + urlPath)
switch err {
diff --git a/examples/client.go b/examples/client.go
index 852b126..169f726 100644
--- a/examples/client.go
+++ b/examples/client.go
@@ -77,8 +77,8 @@ func sendRequest(req *gemini.Request) error {
}
if resp.Status.Class() == gemini.StatusClassSuccess {
- defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
+ resp.Body.Close()
if err != nil {
return err
}