diff --git a/src/router/router.go b/src/router/router.go index 8b41b8afa..3b8340256 100644 --- a/src/router/router.go +++ b/src/router/router.go @@ -219,7 +219,7 @@ func AddWorker(w http.ResponseWriter, req *http.Request) { route.Token = token route.CodeName = codeName // todo: do we need to close body? - err := putRoute(route) + err := putRoute(&route) if err != nil { fmt.Println("couldn't register host:", err) common.SendError(w, 400, fmt.Sprintln("Could not register host!", err)) @@ -257,18 +257,27 @@ func AddWorker(w http.ResponseWriter, req *http.Request) { } } -func getRoute(host string) (Route, error) { +func getRoute(host string) (*Route, error) { rx, err := icache.Get(host) + if err != nil { + return nil, err + } + rx2 := []byte(rx.(string)) route := Route{} + err = json.Unmarshal(rx2, &route) if err == nil { route = rx.(Route) } - return route, err + return &route, err } -func putRoute(route Route) (error) { +func putRoute(route *Route) (error) { item := cache.Item{} - item.Value = route - err := icache.Put(route.Host, &item) + v, err := json.Marshal(route) + if err != nil { + return err + } + item.Value = string(v) + err = icache.Put(route.Host, &item) return err }