Skip to content

Commit 046a59f

Browse files
authored
Merge pull request #140 from lc/lc/fix-providers-stdin
fix(stdin_providers): fix error when passing domains on stdin
2 parents bdf392f + c46caf1 commit 046a59f

File tree

3 files changed

+17
-17
lines changed

3 files changed

+17
-17
lines changed

cmd/gau/main.go

+11-8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"bufio"
5+
"context"
56
"io"
67
"os"
78
"sync"
@@ -51,9 +52,10 @@ func main() {
5152
log.Fatalf("error writing results: %v\n", err)
5253
}
5354
}(out, config.JSON)
54-
55+
ctx, cancel := context.WithCancel(context.Background())
56+
defer cancel()
5557
workChan := make(chan runner.Work)
56-
gau.Start(workChan, results)
58+
gau.Start(ctx, workChan, results)
5759
domains := flags.Args()
5860
if len(domains) > 0 {
5961
for _, provider := range gau.Providers {
@@ -63,14 +65,15 @@ func main() {
6365
}
6466
} else {
6567
sc := bufio.NewScanner(os.Stdin)
66-
for _, provider := range gau.Providers {
67-
for sc.Scan() {
68-
workChan <- runner.NewWork(sc.Text(), provider)
69-
}
70-
if err := sc.Err(); err != nil {
71-
log.Fatal(err)
68+
for sc.Scan() {
69+
domain := sc.Text()
70+
for _, provider := range gau.Providers {
71+
workChan <- runner.NewWork(domain, provider)
7272
}
7373
}
74+
if err := sc.Err(); err != nil {
75+
log.Fatal(err)
76+
}
7477
}
7578
close(workChan)
7679

pkg/providers/providers.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/valyala/fasthttp"
88
)
99

10-
const Version = `2.2.2`
10+
const Version = `2.2.3`
1111

1212
// Provider is a generic interface for all archive fetchers
1313
type Provider interface {

runner/runner.go

+5-8
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,14 @@ import (
1616
type Runner struct {
1717
sync.WaitGroup
1818

19-
Providers []providers.Provider
20-
threads uint
21-
ctx context.Context
22-
cancelFunc context.CancelFunc
19+
Providers []providers.Provider
20+
threads uint
21+
ctx context.Context
2322
}
2423

2524
// Init initializes the runner
2625
func (r *Runner) Init(c *providers.Config, providers []string, filters providers.Filters) error {
2726
r.threads = c.Threads
28-
r.ctx, r.cancelFunc = context.WithCancel(context.Background())
29-
3027
for _, name := range providers {
3128
switch name {
3229
case "urlscan":
@@ -48,12 +45,12 @@ func (r *Runner) Init(c *providers.Config, providers []string, filters providers
4845
}
4946

5047
// Starts starts the worker
51-
func (r *Runner) Start(workChan chan Work, results chan string) {
48+
func (r *Runner) Start(ctx context.Context, workChan chan Work, results chan string) {
5249
for i := uint(0); i < r.threads; i++ {
5350
r.Add(1)
5451
go func() {
5552
defer r.Done()
56-
r.worker(r.ctx, workChan, results)
53+
r.worker(ctx, workChan, results)
5754
}()
5855
}
5956
}

0 commit comments

Comments
 (0)