diff options
| author | demo <demo@antix1> | 2026-05-27 12:18:56 -0400 |
|---|---|---|
| committer | demo <demo@antix1> | 2026-05-27 12:18:56 -0400 |
| commit | a939f6c8ea4e7d493aa282403e1f39a12604484d (patch) | |
| tree | 6f31723ef38280085e6a1da8114cb39b164b1ca3 | |
| parent | ebb7f3eb80c86ae110aaaaf73381e677c33699c1 (diff) | |
feat: configure maxDepth from the command line
Similar to maxURLs, a maxDepth of zero means no limit.
| -rw-r--r-- | classic.go | 8 | ||||
| -rw-r--r-- | main.go | 7 |
2 files changed, 13 insertions, 2 deletions
@@ -40,7 +40,13 @@ loop: break loop } - if p.depth == maxDepth { + // Track maxDepth here. A maxDepth + // greater than zero means a finite + // maxDepth value. If the packets + // we're seeing reach that depth, + // don't use their URLs to spawn new + // fetches. + if maxDepth > 0 && p.depth == maxDepth { continue } @@ -16,6 +16,7 @@ func main() { maxConcurrency := flag.Int("c", 0, "Maximum number of concurrent queue pushes") startRawURL := flag.String("url", "", "Entry-point URL") maxURLs := flag.Int("max", 0, "Maximum number of URLs to collect (omitted or 0 means no limit)") + maxDepth := flag.Int("depth", 0, "Maximum URL depth (omitted or 0 means no limit)") flag.Parse() @@ -35,13 +36,17 @@ func main() { log.Fatalf("Invalid -max argument: %d", *maxURLs) } + if *maxDepth < 0 { + log.Fatalf("Invalid -depth argument: %d", *maxDepth) + } + startURL, err := url.Parse(*startRawURL) if err != nil { log.Fatal(err) } getLeakProfile(func() { - classic(*startURL, *maxConcurrency, *maxURLs, 1) + classic(*startURL, *maxConcurrency, *maxURLs, *maxDepth) }) } |
