package goxy import "net/rpc" type GoXY struct { server *Server } func init() { rpc.HandleHTTP() } func RegisterRPC(s *Server) error { return rpc.Register(&GoXY{s}) } func DialRPC(server string) (*rpc.Client, error) { return rpc.DialHTTP("tcp", server) } // Add adds a new route func (s *GoXY) Add(e Entry, _ *struct{}) error { defer s.server.Save(s.server.DataFile) s.server.Route[e.Host] = e return s.server.Update() } // Del removes a route func (s *GoXY) Del(host string, _ *struct{}) error { defer s.server.Save(s.server.DataFile) delete(s.server.Route, host) return s.server.Update() } // Get returns Entry func (s *GoXY) Get(host string, e *Entry) error { *e = s.server.Route[host] return nil } // List routes func (s GoXY) List(_ struct{}, r *Route) error { *r = s.server.Route return nil }