diff --git a/lib/targets.go b/lib/targets.go index cff6b5c..586d065 100644 --- a/lib/targets.go +++ b/lib/targets.go @@ -4,6 +4,7 @@ import ( "bufio" "fmt" "io" + "regexp" "math/rand" "net/http" "os" @@ -29,10 +30,10 @@ func readTargets(source io.Reader) (Targets, error) { lines := make([]string, 0) for scanner.Scan() { line := scanner.Text() - if line = strings.TrimSpace(line); line == "" { // Empty line - continue + + if !skipLine(line) { // Not a comment or blank line + lines = append(lines, line) } - lines = append(lines, line) } if err := scanner.Err(); err != nil { return Targets{}, err @@ -41,6 +42,10 @@ func readTargets(source io.Reader) (Targets, error) { return NewTargets(lines) } +func skipLine(line string) (bool) { + return regexp.MustCompile(`^\s*((\/\/)|$)`).MatchString(line) +} + // NewTargets instantiates Targets from a slice of strings func NewTargets(lines []string) (Targets, error) { targets := make([]*http.Request, 0) diff --git a/lib/targets_test.go b/lib/targets_test.go index 17947ef..9d113c7 100644 --- a/lib/targets_test.go +++ b/lib/targets_test.go @@ -7,7 +7,7 @@ import ( ) func TestReadTargets(t *testing.T) { - lines := bytes.NewBufferString("GET http://lolcathost:9999/\n\nHEAD http://lolcathost:9999/\n") + lines := bytes.NewBufferString("GET http://lolcathost:9999/\n\n // HEAD http://lolcathost.com this is a comment \nHEAD http://lolcathost:9999/\n") targets, err := readTargets(lines) if err != nil { t.Fatalf("Couldn't parse valid source: %s", err)