// im a web connector package main import ( "http"; "io"; //"./dbibridge"; "./benchcontroller"; "fmt"; ) var comin chan int; var comout chan int; // hello world, the web server func ServerResponder(c *http.Conn, req *http.Request) { //comout <- 2; //comout <- 3; //comout <- 1; fmt.Printf("lk: %s %s %s\n", req.Method, req.RawURL, req.URL); if req.RawURL == "/" { mainPage(c, req); } if req.RawURL == "/confirm" { confirmPage(c, req); } // fucking go, i just wanna consume the incoming data, but it forces me to do something with it... cunt of a language //k := <- comin; //fmt.Printf("%d\n", k); } func confirmPage(c *http.Conn, req *http.Request) { header(c); io.WriteString(c, "

Confirm

"); dbhost := req.FormValue("dbhost"); dbuser := req.FormValue("dbuser"); dbpass := req.FormValue("dbpass"); dbname := req.FormValue("dbname"); nthreads := req.FormValue("nthreads"); dbmult := req.FormValue("dbmult"); io.WriteString(c, "You are trying to perform a benchmark with the following values:
"); io.WriteString(c, ""); io.WriteString(c, fmt.Sprintf("", dbhost)); io.WriteString(c, fmt.Sprintf("", dbuser)); io.WriteString(c, fmt.Sprintf("", dbpass)); io.WriteString(c, fmt.Sprintf("", dbname)); io.WriteString(c, fmt.Sprintf("", dbmult)); io.WriteString(c, fmt.Sprintf("", nthreads)); io.WriteString(c, "
Host%s
User%s
Password%s
Database%s
Data Multiplier%s
Number of Threads%s
"); io.WriteString(c, "
"); io.WriteString(c, fmt.Sprintf("",dbhost)); io.WriteString(c, fmt.Sprintf("",dbuser)); io.WriteString(c, fmt.Sprintf("",dbpass)); io.WriteString(c, fmt.Sprintf("",dbname)); io.WriteString(c, fmt.Sprintf("",nthreads)); io.WriteString(c, fmt.Sprintf("",dbmult)); io.WriteString(c, ""); io.WriteString(c, "
"); footer(c); } func mainPage(c *http.Conn, req *http.Request) { header(c); io.WriteString(c, "

goDBHammer


"); io.WriteString(c, "Welcome to goDBHammer, the go based database benchmarking tool
"); io.WriteString(c, "
"); io.WriteString(c, ""); io.WriteString(c, ""); io.WriteString(c, ""); io.WriteString(c, ""); io.WriteString(c, ""); io.WriteString(c, ""); io.WriteString(c, ""); io.WriteString(c, ""); io.WriteString(c, "
Database Type
Database Host
Database User
Database Password
Database
Data Multiplier
Number of Clients
"); io.WriteString(c, "
"); fmt.Printf("%s\n", req.FormValue("dbhost")); footer(c); } func header(c *http.Conn) { io.WriteString(c, ""); } func footer(c *http.Conn) { io.WriteString(c, ""); } func main() { comin = make(chan int); comout = make(chan int); bc := benchcontroller.CreateController(); go benchcontroller.MainLoop(bc, comout, comin); http.Handle("/", http.HandlerFunc(ServerResponder)); err := http.ListenAndServe(":12345", nil); if err != nil { panic("ListenAndServe: ", err.String()) } }