mirror of
https://gitgud.io/yats/cerberus.git
synced 2026-05-15 17:02:44 -04:00
Don't overwrite existing CheckRedirect
This commit is contained in:
+34
-18
@@ -4,9 +4,11 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/http/cookiejar"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
@@ -31,26 +33,33 @@ func solveTest(ctx context.Context, hc http.Client, host string) error {
|
||||
connType = "tor"
|
||||
}
|
||||
|
||||
log.Printf("Fetching new %s challenge...", connType)
|
||||
c, err := NewChallenge(ctx, hc, host)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
log.Printf("Challenge: %s, Difficulty: %d, Steps: %d\n", c.Salt, c.Diff, c.Steps)
|
||||
steps := int8(1)
|
||||
|
||||
s, err := Solve(ctx, c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
log.Printf("Solution hash: %x, nonce: %d\n", s.Hash, s.Nonce)
|
||||
for steps > 0 {
|
||||
log.Printf("Fetching new %s challenge...", connType)
|
||||
c, err := NewChallenge(ctx, hc, host)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
log.Printf("Challenge: %s, Difficulty: %d, Steps: %d\n", c.Salt, c.Diff, c.Steps)
|
||||
steps = c.Steps
|
||||
|
||||
resp, err := Submit(ctx, hc, s, "")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
s, err := Solve(ctx, c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
log.Printf("Solution hash: %x, nonce: %d\n", s.Hash, s.Nonce)
|
||||
|
||||
log.Printf("Response: %s\n\n", resp.Header.Get("Set-Cookie"))
|
||||
resp, err := Submit(ctx, hc, s, "")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
log.Printf("Response: %s\n\n", b[:60])
|
||||
|
||||
resp.Body.Close()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -67,9 +76,16 @@ func newProxyTransport() *http.Transport {
|
||||
func TestSubmit(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
|
||||
err := solveTest(ctx, http.Client{}, _TEST_HOST)
|
||||
jar, err := cookiejar.New(nil)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
err = solveTest(ctx, http.Client{Jar: jar}, _TEST_HOST)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
var dnsErr *net.DNSError
|
||||
|
||||
Reference in New Issue
Block a user