diff --git a/client.go b/client.go index a45c659..0c92e1d 100644 --- a/client.go +++ b/client.go @@ -101,7 +101,8 @@ func (c *Client) Do(req *Request) (*Response, error) { } // Store connection state - resp.TLS = conn.ConnectionState() + state := conn.ConnectionState() + resp.TLS = &state return resp, nil } diff --git a/request.go b/request.go index 32cd1ab..ae4ebfd 100644 --- a/request.go +++ b/request.go @@ -36,7 +36,7 @@ type Request struct { // connection on which the request was received. // // This field is ignored by the client. - TLS tls.ConnectionState + TLS *tls.ConnectionState // Context specifies the context to use for client requests. // If Context is nil, the background context will be used. diff --git a/response.go b/response.go index 3cf2f36..026afc0 100644 --- a/response.go +++ b/response.go @@ -26,7 +26,7 @@ type Response struct { // TLS contains information about the TLS connection on which the response // was received. - TLS tls.ConnectionState + TLS *tls.ConnectionState } // ReadResponse reads a Gemini response from the provided io.ReadCloser. diff --git a/server.go b/server.go index 523cb39..5c8e8e3 100644 --- a/server.go +++ b/server.go @@ -207,7 +207,8 @@ func (s *Server) respond(conn net.Conn) { // Store information about the TLS connection if tlsConn, ok := conn.(*tls.Conn); ok { - req.TLS = tlsConn.ConnectionState() + state := tlsConn.ConnectionState() + req.TLS = &state if len(req.TLS.PeerCertificates) > 0 { peerCert := req.TLS.PeerCertificates[0] // Store the TLS certificate