diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.go | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/src/main.go b/src/main.go index badeed8..bfb839c 100644 --- a/src/main.go +++ b/src/main.go @@ -1,55 +1,29 @@ package main import ( - "fmt" "log" ) func main() { - // pase the command line aguments + // read command line arguments, create channels... registerFlags() - log.Printf("%s Done reading flags", green("[+]")) + channels = registerChannels() // 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 channels storing the wordlist and the responses resulting from the - // requests - wordlistChannel := make(chan string) - printChannel := make(chan Response) - doneChannel := make(chan int) - log.Printf("%s Done defining channels", green("[+]")) // write into the wordlist channel and read out of the print channel // these functions wait for input into the channels and process the given // data - go writeWordlistToChannel(wordlistChannel, wordlist) - go printResponses(printChannel) - log.Printf("%s Done starting hander routines", green("[+]")) - - log.Printf("%s Starting the http handlers", cyan("[+]")) - // handle one or more theads - if threads <= 1 { - log.Printf("%s 1 thread", yellow("[i]")) - httpRequest(wordlistChannel, printChannel, nil, 0) - } else { - log.Printf("%s Starting %d threads...", yellow("[i]"), threads) + go writeWordlistToChannel(channels, wordlist) + go printResponses(channels) - // 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++ { - go httpRequest(wordlistChannel, printChannel, doneChannel, i) - } - log.Printf("%s Done starting %d threads", green("[i]"), threads) + // start the http server exposing the data found + go httpStartServer() - for i := 0; i < threads; i++ { - threadNum := <-doneChannel - fmt.Printf("Thread %d done!\n", threadNum) - } - } + // make the http requests by fetching the data from the channels + httpHandler(wordlistChannel, printChannel, doneChannel) } |