From b991d9d8c791460a0e5ab4d28502f95efa3d866c Mon Sep 17 00:00:00 2001 From: Emile Date: Fri, 1 Nov 2019 21:33:59 +0100 Subject: broke stuff, fixed stuff... --- src/main.go | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'src/main.go') diff --git a/src/main.go b/src/main.go index 25d3f3b..6bb8beb 100644 --- a/src/main.go +++ b/src/main.go @@ -1,43 +1,53 @@ package main import ( + "fmt" "log" ) func main() { // pase the command line aguments registerFlags() + log.Printf("%s Done reading flags", green("[+]")) // read the wordlist from a file wordlist, err := readWordlist(wordlist) if err != nil { log.Println(err) } + log.Printf("%s Done reading the wordlist", green("[+]")) - // define a channel to store the wordlist in + // define channels storing the wordlist and the responses resulting from the + // requests wordlistChannel := make(chan string) - - // define a channel in which the response gets written into from the go - // routines printChannel := make(chan Response) - // write the wordlist into a channel - writeWordlistToChannel(wordlistChannel, wordlist) - - // print the responses from the printChannel + // write into the wordlist channel and read out of the print channel + go writeWordlistToChannel(wordlistChannel, wordlist) go printResponses(printChannel) + log.Printf("%s Starting the http handlers", cyan("[+]")) // handle one or more theads if threads <= 1 { + log.Printf("%s 1 thread", yellow("[+]")) httpRequest(wordlistChannel, printChannel) } else { + log.Printf("%s multiple threads", yellow("[+]")) // loop over all the threads starting a go routine fetching a word from // the wordlistChannel, making the request and inserting the result into // the printChannel for i := 0; i < threads; i++ { + log.Printf("%s Starting Thread %d\n", cyan("[i]"), i) go httpRequest(wordlistChannel, printChannel) } } + fmt.Println(len(wordlistChannel)) + + for { + if len(wordlistChannel) > 0 { + break + } + } } -- cgit 1.4.1