client: Move context handling to do
This commit is contained in:
parent
31e16d5a4c
commit
d07e9d99d1
34
client.go
34
client.go
@ -125,22 +125,7 @@ func (c *Client) Do(ctx context.Context, req *Request) (*Response, error) {
|
|||||||
|
|
||||||
res := make(chan result, 1)
|
res := make(chan result, 1)
|
||||||
go func() {
|
go func() {
|
||||||
ctx, cancel := context.WithCancel(ctx)
|
resp, err := c.do(ctx, conn, req)
|
||||||
done := ctx.Done()
|
|
||||||
cw := &contextWriter{
|
|
||||||
ctx: ctx,
|
|
||||||
done: done,
|
|
||||||
cancel: cancel,
|
|
||||||
wc: conn,
|
|
||||||
}
|
|
||||||
cr := &contextReader{
|
|
||||||
ctx: ctx,
|
|
||||||
done: done,
|
|
||||||
cancel: cancel,
|
|
||||||
rc: conn,
|
|
||||||
}
|
|
||||||
|
|
||||||
resp, err := c.do(cw, cr, req)
|
|
||||||
res <- result{resp, err}
|
res <- result{resp, err}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@ -153,7 +138,22 @@ func (c *Client) Do(ctx context.Context, req *Request) (*Response, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) do(w io.Writer, rc io.ReadCloser, req *Request) (*Response, error) {
|
func (c *Client) do(ctx context.Context, conn net.Conn, req *Request) (*Response, error) {
|
||||||
|
ctx, cancel := context.WithCancel(ctx)
|
||||||
|
done := ctx.Done()
|
||||||
|
w := &contextWriter{
|
||||||
|
ctx: ctx,
|
||||||
|
done: done,
|
||||||
|
cancel: cancel,
|
||||||
|
wc: conn,
|
||||||
|
}
|
||||||
|
rc := &contextReader{
|
||||||
|
ctx: ctx,
|
||||||
|
done: done,
|
||||||
|
cancel: cancel,
|
||||||
|
rc: conn,
|
||||||
|
}
|
||||||
|
|
||||||
// Write the request
|
// Write the request
|
||||||
if err := req.Write(w); err != nil {
|
if err := req.Write(w); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
Reference in New Issue
Block a user