Commit 3fd8301

Richard Luby <richluby@gmail.com>
2016-10-27 15:45:43
reworked handlers to be more dynamic
handlers can now be added to the handling array to simplify adding more
1 parent 7b8f51c
questioner.go
@@ -68,7 +68,10 @@ func loadServerConfiguration(cfgFile string) CONFIG {
 // Listen binds the listening server and starts the listening loop
 // serverConfig : contains the configuration to be used
 func Listen(serverConfig CONFIG) {
-	http.HandleFunc("/record", handleRecordRequests)
+	// register the server handlers
+	for _, handler := range handlers {
+		http.HandleFunc(handler.Request, handler.HandleFunction)
+	}
 	log.Fatal(http.ListenAndServe(
 		serverConfig.LISTEN_ADDRESS+":"+
 			strconv.Itoa(serverConfig.LISTEN_PORT),
serverHandlers.go
@@ -8,6 +8,11 @@ import (
 	"strconv"
 )
 
+type ServerHandler struct {
+	Request        string
+	HandleFunction func(writer http.ResponseWriter, request *http.Request)
+}
+
 // HandleConnections processes client connections
 func handleRecordRequests(writer http.ResponseWriter, request *http.Request) {
 	log.Printf("Client Connected: %+v\tvia %+v", request.RemoteAddr, request.UserAgent())
@@ -25,3 +30,8 @@ func handleRecordRequests(writer http.ResponseWriter, request *http.Request) {
 	writer.Write(data)
 	log.Printf("Gave %d questions to %s", numQuestions, request.RemoteAddr)
 }
+
+var handlers = []ServerHandler{
+	ServerHandler{
+		Request:        "/record",
+		HandleFunction: handleRecordRequests}}