1
1
mirror of https://github.com/OJ/gobuster.git synced 2024-09-28 02:55:57 +02:00

Changed delay type from int to time.Duration

This commit is contained in:
Christian Bieg 2019-06-23 14:23:48 +02:00
parent c74b522710
commit 50ad62a4e3
6 changed files with 21 additions and 10 deletions

View File

@ -64,7 +64,7 @@ func parseGlobalOptions() (*libgobuster.Options, error) {
}
globalopts.Threads = threads
delay, err := rootCmd.Flags().GetInt("delay")
delay, err := rootCmd.Flags().GetDuration("delay")
if err != nil {
return nil, fmt.Errorf("invalid value for delay: %v", err)
}
@ -119,7 +119,7 @@ func configureGlobalOptions() {
}
func init() {
rootCmd.PersistentFlags().IntP("delay", "d", 0, "Number of milliseconds each thread waits between requests")
rootCmd.PersistentFlags().DurationP("delay", "d", 0, "Time each thread waits between requests (e.g. 1500ms)")
rootCmd.PersistentFlags().IntP("threads", "t", 10, "Number of concurrent threads")
rootCmd.PersistentFlags().StringP("wordlist", "w", "", "Path to the wordlist")
rootCmd.PersistentFlags().StringP("output", "o", "", "Output file to write results to (defaults to stdout)")

View File

@ -247,8 +247,10 @@ func (d *GobusterDir) GetConfigString() (string, error) {
return "", err
}
if _, err := fmt.Fprintf(tw, "[+] Delay:\t%dms\n", d.globalopts.Delay); err != nil {
return "", err
if d.globalopts.Delay > 0 {
if _, err := fmt.Fprintf(tw, "[+] Delay:\t%s\n", d.globalopts.Delay); err != nil {
return "", err
}
}
wordlist := "stdin (pipe)"

View File

@ -173,8 +173,10 @@ func (d *GobusterDNS) GetConfigString() (string, error) {
return "", err
}
if _, err := fmt.Fprintf(tw, "[+] Delay:\t%d\n", d.globalopts.Delay); err != nil {
return "", err
if d.globalopts.Delay > 0 {
if _, err := fmt.Fprintf(tw, "[+] Delay:\t%s\n", d.globalopts.Delay); err != nil {
return "", err
}
}
if o.Resolver != "" {

View File

@ -148,8 +148,10 @@ func (v *GobusterVhost) GetConfigString() (string, error) {
return "", err
}
if _, err := fmt.Fprintf(tw, "[+] Delay:\t%d\n", v.globalopts.Delay); err != nil {
return "", err
if v.globalopts.Delay > 0 {
if _, err := fmt.Fprintf(tw, "[+] Delay:\t%s\n", v.globalopts.Delay); err != nil {
return "", err
}
}
wordlist := "stdin (pipe)"

View File

@ -115,7 +115,10 @@ func (g *Gobuster) worker(wordChan <-chan string, wg *sync.WaitGroup) {
}
}
time.Sleep(time.Duration(g.Opts.Delay) * time.Millisecond)
select {
case <-g.context.Done():
case <-time.After(g.Opts.Delay):
}
}
}
}

View File

@ -1,5 +1,7 @@
package libgobuster
import "time"
// Options helds all options that can be passed to libgobuster
type Options struct {
Threads int
@ -10,7 +12,7 @@ type Options struct {
Quiet bool
WildcardForced bool
Verbose bool
Delay int
Delay time.Duration
}
// NewOptions returns a new initialized Options object