Fix resp.Body not closed when >1 steps

This commit is contained in:
y a t s
2026-02-04 14:52:22 -05:00
parent 6d199a103f
commit 34ceeced8f
2 changed files with 10 additions and 8 deletions

View File

@@ -42,7 +42,7 @@ func solveTest(ctx context.Context, hc http.Client, host string) error {
if err != nil {
return err
}
log.Printf("Solution hash: %x, nonce: %d, remaining steps: %d\n", s.Hash, s.Nonce, s.Steps)
log.Printf("Solution hash: %x, nonce: %d\n", s.Hash, s.Nonce)
resp, err := Submit(ctx, hc, s, "")
if err != nil {

16
http.go
View File

@@ -85,21 +85,23 @@ func Submit(ctx context.Context, hc http.Client, s Solution, redirect string) (*
return nil, err
}
if s.Steps > 0 {
// This feels gross, but it works.
for s.Steps > 0 {
resp.Body.Close()
c, err := NewChallenge(ctx, hc, s.host.String())
if err != nil {
return nil, err
}
// maybe useful later. idk.
// c.Steps = s.Steps
s, err := Solve(ctx, c)
s, err = Solve(ctx, c)
if err != nil {
return nil, err
}
resp, err = Submit(ctx, hc, s, redirect)
if err != nil {
return nil, err
}
return Submit(ctx, hc, s, redirect)
}
return resp, nil