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