fixed a problem where bytes and strings are the suck
[goDBhammer.git] / src / webconnector.go
index ee42713..57a832e 100644 (file)
@@ -9,8 +9,10 @@ import (
        //"./dbibridge";
        "./benchcontroller";
        //"dbconnector";
+       "bytes";
        "fmt";
        "json";
+       //"strings";
 )
 
 type JSONStatData struct {
@@ -18,24 +20,49 @@ type JSONStatData struct {
        currentStatus int; // percent complete
 }
 
+
+//type DBDataPost struct {
+//}
+
 var comin chan string;
 var cominstatus chan string;
 var comout chan string;
 
+var stat int;
+
 func JSONResponder(c *http.Conn, req *http.Request)
 {
        //stat := <- cominstatus;
        
        if(req.Method == "GET") {
        
-               j, _, _ := json.StringToJson("{\"status\":1, \"complete\":90}");
+               j, _, _ := json.StringToJson(fmt.Sprintf("{\"status\":%d, \"complete\":90}", stat));
                
                io.WriteString(c, fmt.Sprintf("%s\n", json.JsonToString(j)));
                fmt.Printf("i got a get\n");
        }
        if(req.Method == "POST") {
-               fmt.Printf("i got a post...\n");
-               http.Redirect(c, "/", 301);
+               ll := make([]byte, 1048576);
+               nc,_ := req.Body.Read(ll);
+               lp := make([]byte, nc);
+               bytes.Copy(lp, ll);
+               fmt.Printf("i got a post...%s\n", string(lp));
+               //http.Redirect(c, "/", 301);
+               s,g,es := json.StringToJson(string(lp));
+               //s,g,es = json.StringToJson("[{\"name\":\"dbtype\",\"value\":\"a\"},{\"name\":\"dbhost\",\"value\":\"a\"},{\"name\":\"dbuser\",\"value\":\"a\"},{\"name\":\"dbpass\",\"value\":\"a\"},{\"name\":\"dbname\",\"value\":\"a\"},{\"name\":\"datamult\",\"value\":\"1\"},{\"name\":\"nclients\",\"value\":\"2\"}]");
+               //fmt.Printf("\n[{\"name\":\"dbtype\",\"value\":\"a\"},{\"name\":\"dbhost\",\"value\":\"a\"},{\"name\":\"dbuser\",\"value\":\"a\"},{\"name\":\"dbpass\",\"value\":\"a\"},{\"name\":\"dbname\",\"value\":\"a\"},{\"name\":\"datamult\",\"value\":\"1\"},{\"name\":\"nclients\",\"value\":\"2\"}]'\n%s'\n", tkl[0]);
+               s2 := s.Get("name");
+               
+               if(g) {
+                       fmt.Printf("true");
+               } else {
+                       fmt.Printf("false '%s' %d\n", es, len(es));
+               }
+               
+               fmt.Printf("erg: %d\n", s2.Kind());
+               fmt.Printf("erg: %s\n", s2.String());
+               fmt.Printf("i got a post...%s and its\n", (string)(lp));
+               stat = 2;
        }
        
 }
@@ -57,6 +84,7 @@ func main()
        cominstatus = make(chan string);
        comout = make(chan string);
        
+       stat = 1;
        
        bc := benchcontroller.CreateController();
        go benchcontroller.MainLoop(bc, comout, comin, cominstatus);