package main import ( "log" "net/rpc" ) // GoXY defines RPC interface type GoXY struct{} func init() { rpc.Register(GoXY{}) rpc.HandleHTTP() } // Add adds a new route func (GoXY) Add(e Entry, _ *struct{}) error { log.Println("Add route", e) defer route.Save(*data) route[e.ServerName] = e return route.Restore() } // Del removes a route func (GoXY) Del(e Entry, _ *struct{}) error { log.Println("Del route", e) defer route.Save(*data) delete(route, e.ServerName) return route.Restore() } // List routes func (GoXY) List(_ struct{}, r *[]Entry) error { for _, v := range route { *r = append(*r, v) } return nil }