about summary refs log tree commit diff
path: root/src/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.go')
-rw-r--r--src/main.go42
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)
 }