From 4d861a2c395c0926b066014b92999d4dda454b2b Mon Sep 17 00:00:00 2001 From: tjp Date: Sat, 13 Jan 2024 11:29:17 -0700 Subject: dial timeouts for clients, and catch up on test fixes --- nex/client.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'nex/client.go') diff --git a/nex/client.go b/nex/client.go index 4a34903..4fa5265 100644 --- a/nex/client.go +++ b/nex/client.go @@ -2,6 +2,7 @@ package nex import ( "bytes" + "context" "errors" "io" "net" @@ -18,7 +19,7 @@ import ( type Client struct{} // RoundTrip sends a single nex request and returns its response. -func (c Client) RoundTrip(request *types.Request) (*types.Response, error) { +func (c Client) RoundTrip(ctx context.Context, request *types.Request) (*types.Response, error) { if request.Scheme != "nex" && request.Scheme != "" { return nil, errors.New("non-nex protocols not supported") } @@ -28,7 +29,7 @@ func (c Client) RoundTrip(request *types.Request) (*types.Response, error) { host = net.JoinHostPort(host, "1900") } - conn, err := net.Dial("tcp", host) + conn, err := (&net.Dialer{}).DialContext(ctx, "tcp", host) if err != nil { return nil, err } @@ -50,12 +51,12 @@ func (c Client) RoundTrip(request *types.Request) (*types.Response, error) { } // Fetch builds and sends a nex request, and returns the response. -func (c Client) Fetch(url string) (*types.Response, error) { +func (c Client) Fetch(ctx context.Context, url string) (*types.Response, error) { u, err := neturl.Parse(url) if err != nil { return nil, err } - return c.RoundTrip(&types.Request{URL: u}) + return c.RoundTrip(ctx, &types.Request{URL: u}) } func (c Client) IsRedirect(response *types.Response) bool { return false } -- cgit v1.2.3