1
1
Fork 0
mirror of https://github.com/OJ/gobuster.git synced 2024-05-22 03:16:02 +02:00

seperate stdout and stderr, see #146

This commit is contained in:
Christian Mehlmauer 2019-05-24 16:42:21 +02:00
parent f1a23a1f01
commit b730f2b720
No known key found for this signature in database
GPG Key ID: DCF54A05D6E62591
4 changed files with 14 additions and 10 deletions

View File

@ -3,7 +3,6 @@ package cli
import (
"context"
"fmt"
"log"
"os"
"strings"
"sync"
@ -31,7 +30,7 @@ func resultWorker(g *libgobuster.Gobuster, filename string, wg *sync.WaitGroup)
if filename != "" {
f, err = os.Create(filename)
if err != nil {
log.Fatalf("error on creating output file: %v", err)
g.LogError.Fatalf("error on creating output file: %v", err)
}
defer f.Close()
}
@ -39,7 +38,7 @@ func resultWorker(g *libgobuster.Gobuster, filename string, wg *sync.WaitGroup)
for r := range g.Results() {
s, err := r.ToString(g)
if err != nil {
log.Fatal(err)
g.LogError.Fatal(err)
}
if s != "" {
g.ClearProgress()
@ -48,7 +47,7 @@ func resultWorker(g *libgobuster.Gobuster, filename string, wg *sync.WaitGroup)
if f != nil {
err = writeToFile(f, s)
if err != nil {
log.Fatalf("error on writing output file: %v", err)
g.LogError.Fatalf("error on writing output file: %v", err)
}
}
}
@ -63,7 +62,7 @@ func errorWorker(g *libgobuster.Gobuster, wg *sync.WaitGroup) {
for e := range g.Errors() {
if !g.Opts.Quiet {
g.ClearProgress()
log.Printf("[!] %v", e)
g.LogError.Printf("[!] %v", e)
}
}
}
@ -122,7 +121,7 @@ func Gobuster(prevCtx context.Context, opts *libgobuster.Options, plugin libgobu
}
fmt.Println(c)
ruler()
log.Println("Starting gobuster")
gobuster.LogInfo.Println("Starting gobuster")
ruler()
}
@ -157,7 +156,7 @@ func Gobuster(prevCtx context.Context, opts *libgobuster.Options, plugin libgobu
if !opts.Quiet {
gobuster.ClearProgress()
ruler()
log.Println("Finished")
gobuster.LogInfo.Println("Finished")
ruler()
}
return nil

2
go.mod
View File

@ -4,5 +4,5 @@ require (
github.com/google/uuid v1.1.1
github.com/spf13/cobra v0.0.4
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f
golang.org/x/sys v0.0.0-20190520201301-c432e742b0af // indirect
golang.org/x/sys v0.0.0-20190524122548-abf6ff778158 // indirect
)

4
go.sum
View File

@ -36,8 +36,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190520201301-c432e742b0af h1:NXfmMfXz6JqGfG3ikSxcz2N93j6DgScr19Oo2uwFu88=
golang.org/x/sys v0.0.0-20190520201301-c432e742b0af/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190524122548-abf6ff778158 h1:v73Zw0Y1htnV0qaOAYSNiuIAviPSBkNtdy1tPi1+zpY=
golang.org/x/sys v0.0.0-20190524122548-abf6ff778158/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

View File

@ -4,6 +4,7 @@ import (
"bufio"
"context"
"fmt"
"log"
"os"
"strings"
"sync"
@ -28,6 +29,8 @@ type Gobuster struct {
plugin GobusterPlugin
resultChan chan Result
errorChan chan error
LogInfo *log.Logger
LogError *log.Logger
}
// NewGobuster returns a new Gobuster object
@ -39,6 +42,8 @@ func NewGobuster(c context.Context, opts *Options, plugin GobusterPlugin) (*Gobu
g.context = c
g.resultChan = make(chan Result)
g.errorChan = make(chan error)
g.LogInfo = log.New(os.Stdout, "", log.LstdFlags)
g.LogError = log.New(os.Stderr, "", log.LstdFlags)
return &g, nil
}