diff --git a/go.mod b/go.mod index 1b47b19..85eb540 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/gospider007/bar v0.0.0-20250815030902-4f5b5d6312cf github.com/gospider007/bs4 v0.0.0-20250815030800-a352d3ad57ee github.com/gospider007/gson v0.0.0-20250815030832-fa016f03a353 - github.com/gospider007/gtls v0.0.0-20250818014236-059b98baa05b + github.com/gospider007/gtls v0.0.0-20250818024401-0d7bcb040679 github.com/gospider007/http1 v0.0.0-20250817122009-0b953c2c8efa github.com/gospider007/http2 v0.0.0-20250817122534-76043412544d github.com/gospider007/http3 v0.0.0-20250817123336-07d66db6dbb3 diff --git a/go.sum b/go.sum index 9d871c9..69971cb 100644 --- a/go.sum +++ b/go.sum @@ -112,8 +112,8 @@ github.com/gospider007/bs4 v0.0.0-20250815030800-a352d3ad57ee h1:XKhfmuJ/lGYMN0n github.com/gospider007/bs4 v0.0.0-20250815030800-a352d3ad57ee/go.mod h1:AU9FRb74CELvy5vhGAP/4GDw5SgGxxIj7SI5X0AoPe0= github.com/gospider007/gson v0.0.0-20250815030832-fa016f03a353 h1:jrqXuLs1QzMZcl8mMoBLTaag6JaLY1eh/toCyDWC8GY= github.com/gospider007/gson v0.0.0-20250815030832-fa016f03a353/go.mod h1:nxA7Mekk0TdS1W+ycauVr8vW25mMXf9rxCGcGHNE28w= -github.com/gospider007/gtls v0.0.0-20250818014236-059b98baa05b h1:toPRBSz4GIJXJSKOhGwewVdCMAEY8UpyDnON55seWy8= -github.com/gospider007/gtls v0.0.0-20250818014236-059b98baa05b/go.mod h1:Np1+9Lmsm3g1LtDl3C8OOsMXfHRdOwyd7olW8YJMGLo= +github.com/gospider007/gtls v0.0.0-20250818024401-0d7bcb040679 h1:Rky2kfy1qNbmR88IMUEPjRahXza1Szi1NVGYwy40OI0= +github.com/gospider007/gtls v0.0.0-20250818024401-0d7bcb040679/go.mod h1:Np1+9Lmsm3g1LtDl3C8OOsMXfHRdOwyd7olW8YJMGLo= github.com/gospider007/http1 v0.0.0-20250817122009-0b953c2c8efa h1:SJPg55yHMzcrprjvBA2YBMYCmIRauhFtQGL6QVTManM= github.com/gospider007/http1 v0.0.0-20250817122009-0b953c2c8efa/go.mod h1:2KmewDOljCqfLfbSiIzuohAHvivZwj9pSd25pGEVvfE= github.com/gospider007/http2 v0.0.0-20250817122534-76043412544d h1:PShVXqSaKS0mOpkvYEyrSDRtUQokcBMDinKvLVs5w4M= diff --git a/response.go b/response.go index 080fcd4..c2faeb0 100644 --- a/response.go +++ b/response.go @@ -348,6 +348,7 @@ func (obj *Response) closeBody(i bool, err error) { } else { obj.CloseConn() } + obj.cnl() } // read body diff --git a/roundTripper.go b/roundTripper.go index 3460958..c7a71aa 100644 --- a/roundTripper.go +++ b/roundTripper.go @@ -61,7 +61,6 @@ func getKey(ctx *Response) (string, error) { type roundTripper struct { ctx context.Context - cnl context.CancelFunc connPools sync.Map dialer *Dialer lock sync.Mutex @@ -73,10 +72,8 @@ func newRoundTripper(preCtx context.Context) *roundTripper { if preCtx == nil { preCtx = context.TODO() } - ctx, cnl := context.WithCancel(preCtx) return &roundTripper{ - ctx: ctx, - cnl: cnl, + ctx: preCtx, dialer: new(Dialer), } } @@ -346,6 +343,7 @@ func (obj *roundTripper) newReqTask(ctx *Response) (*reqTask, error) { task.key = key return task, nil } + func (obj *roundTripper) RoundTrip(ctx *Response) (err error) { if ctx.option.RequestCallBack != nil { if err = ctx.option.RequestCallBack(ctx); err != nil { @@ -378,6 +376,7 @@ func (obj *roundTripper) RoundTrip(ctx *Response) (err error) { err = obj.newRoundTrip(task) task.disRetry = true } + task.cnl(err) if err == nil { break }