Allow Request.Context to be nil

This commit is contained in:
Adnan Maolood 2020-12-17 17:16:55 -05:00
parent a1dd8de337
commit 176b260468
2 changed files with 10 additions and 5 deletions

View File

@ -2,6 +2,7 @@ package gemini
import (
"bufio"
"context"
"crypto/tls"
"crypto/x509"
"errors"
@ -96,7 +97,12 @@ func (c *Client) do(req *Request, via []*Request) (*Response, error) {
},
ServerName: hostname,
}
netConn, err := (&net.Dialer{}).DialContext(req.Context, "tcp", req.Host)
ctx := req.Context
if ctx == nil {
ctx = context.Background()
}
netConn, err := (&net.Dialer{}).DialContext(ctx, "tcp", req.Host)
if err != nil {
return nil, err
}

View File

@ -36,7 +36,7 @@ type Request struct {
TLS tls.ConnectionState
// Context specifies the context to use for client requests.
// Context must not be nil.
// If Context is nil, the background context will be used.
Context context.Context
}
@ -60,9 +60,8 @@ func NewRequestFromURL(url *url.URL) *Request {
host += ":1965"
}
return &Request{
URL: url,
Host: host,
Context: context.Background(),
URL: url,
Host: host,
}
}