From 0824f4bcd9a31add8e7cfa1662d2cb40900de073 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 27 Mar 2016 20:44:30 +0200 Subject: Encapsulate in package --- rpc.go | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 62a6a3f..bf7b36d 100644 --- a/rpc.go +++ b/rpc.go @@ -1,38 +1,37 @@ -package main +package goxy import ( "log" "net/rpc" ) -// GoXY defines RPC interface -type GoXY struct{} +type GoXY struct { + Server *Server +} -func init() { - rpc.Register(GoXY{}) +func Register(s *Server) { + rpc.Register(&GoXY{s}) rpc.HandleHTTP() } // Add adds a new route -func (GoXY) Add(e Entry, _ *struct{}) error { +func (s *GoXY) Add(e Entry, _ *struct{}) error { log.Println("Add route", e) - defer route.Save(*data) - route[e.ServerName] = e - return route.Restore() + defer s.Server.Save() + s.Server.Route[e.ServerName] = e + return s.Server.Restore() } // Del removes a route -func (GoXY) Del(e Entry, _ *struct{}) error { +func (s *GoXY) Del(e Entry, _ *struct{}) error { log.Println("Del route", e) - defer route.Save(*data) - delete(route, e.ServerName) - return route.Restore() + defer s.Server.Save() + delete(s.Server.Route, e.ServerName) + return s.Server.Restore() } // List routes -func (GoXY) List(_ struct{}, r *[]Entry) error { - for _, v := range route { - *r = append(*r, v) - } +func (s GoXY) List(_ struct{}, r *Route) error { + *r = s.Server.Route return nil } -- cgit v1.2.3 From 13ce0d0853fc888cf465742ed2e134e9bc5be77a Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 27 Mar 2016 22:15:22 +0200 Subject: Clenup RPC --- rpc.go | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index bf7b36d..e7a6a20 100644 --- a/rpc.go +++ b/rpc.go @@ -14,7 +14,7 @@ func Register(s *Server) { rpc.HandleHTTP() } -// Add adds a new route +// Add adds a new route (server) func (s *GoXY) Add(e Entry, _ *struct{}) error { log.Println("Add route", e) defer s.Server.Save() @@ -22,16 +22,49 @@ func (s *GoXY) Add(e Entry, _ *struct{}) error { return s.Server.Restore() } -// Del removes a route -func (s *GoXY) Del(e Entry, _ *struct{}) error { - log.Println("Del route", e) +// Add new entry (client) +func Add(e Entry, server string) error { + client, err := rpc.DialHTTP("tcp", server) + if err != nil { + return err + } + defer client.Close() + return client.Call("GoXY.Add", e, nil) +} + +// Del removes a route (server) +func (s *GoXY) Del(serverName string, _ *struct{}) error { + log.Println("Del route", serverName) defer s.Server.Save() - delete(s.Server.Route, e.ServerName) + delete(s.Server.Route, serverName) return s.Server.Restore() } +// Del removes a route (client) +func Del(serverName string, server string) error { + client, err := rpc.DialHTTP("tcp", server) + if err != nil { + return err + } + defer client.Close() + return client.Call("GoXY.Del", serverName, nil) +} + // List routes func (s GoXY) List(_ struct{}, r *Route) error { *r = s.Server.Route return nil } + +func List(server string) (Route, error) { + client, err := rpc.DialHTTP("tcp", server) + if err != nil { + return nil, err + } + defer client.Close() + var r Route + if err := client.Call("GoXY.List", struct{}{}, &r); err != nil { + return nil, err + } + return r, nil +} -- cgit v1.2.3 From ad1d07b46509adc15670678480479edcf78370b2 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 27 Mar 2016 23:52:21 +0200 Subject: Tweak rpc --- rpc.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index e7a6a20..574993d 100644 --- a/rpc.go +++ b/rpc.go @@ -24,6 +24,9 @@ func (s *GoXY) Add(e Entry, _ *struct{}) error { // Add new entry (client) func Add(e Entry, server string) error { + if server == "" { + server = ":http-alt" + } client, err := rpc.DialHTTP("tcp", server) if err != nil { return err @@ -42,6 +45,9 @@ func (s *GoXY) Del(serverName string, _ *struct{}) error { // Del removes a route (client) func Del(serverName string, server string) error { + if server == "" { + server = ":http-alt" + } client, err := rpc.DialHTTP("tcp", server) if err != nil { return err @@ -57,6 +63,9 @@ func (s GoXY) List(_ struct{}, r *Route) error { } func List(server string) (Route, error) { + if server == "" { + server = ":http-alt" + } client, err := rpc.DialHTTP("tcp", server) if err != nil { return nil, err -- cgit v1.2.3 From 6f2b0345b2593c3896448d22afe1539be4cc1be2 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 28 Mar 2016 00:40:51 +0200 Subject: Add Get call --- rpc.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 574993d..57bfa73 100644 --- a/rpc.go +++ b/rpc.go @@ -56,6 +56,25 @@ func Del(serverName string, server string) error { return client.Call("GoXY.Del", serverName, nil) } +func (s *GoXY) Get(serverName string, e *Entry) error { + *e = s.Server.Route[serverName] + return nil +} + +func Get(serverName string, server string) (Entry, error) { + if server == "" { + server = ":http-alt" + } + client, err := rpc.DialHTTP("tcp", server) + if err != nil { + return Entry{}, err + } + defer client.Close() + var e Entry + err = client.Call("GoXY.Get", serverName, &e) + return e, err +} + // List routes func (s GoXY) List(_ struct{}, r *Route) error { *r = s.Server.Route -- cgit v1.2.3 From a3633a98e48bd76b74016d171a7d32f86092cd47 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 28 Mar 2016 00:51:58 +0200 Subject: Unify --- rpc.go | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 57bfa73..f33456f 100644 --- a/rpc.go +++ b/rpc.go @@ -14,6 +14,13 @@ func Register(s *Server) { rpc.HandleHTTP() } +func DialRPC(server string) (*rpc.Client, error) { + if server == "" { + server = ":http-alt" + } + return rpc.DialHTTP("tcp", server) +} + // Add adds a new route (server) func (s *GoXY) Add(e Entry, _ *struct{}) error { log.Println("Add route", e) @@ -24,10 +31,7 @@ func (s *GoXY) Add(e Entry, _ *struct{}) error { // Add new entry (client) func Add(e Entry, server string) error { - if server == "" { - server = ":http-alt" - } - client, err := rpc.DialHTTP("tcp", server) + client, err := DialRPC(server) if err != nil { return err } @@ -45,10 +49,7 @@ func (s *GoXY) Del(serverName string, _ *struct{}) error { // Del removes a route (client) func Del(serverName string, server string) error { - if server == "" { - server = ":http-alt" - } - client, err := rpc.DialHTTP("tcp", server) + client, err := DialRPC(server) if err != nil { return err } @@ -62,10 +63,7 @@ func (s *GoXY) Get(serverName string, e *Entry) error { } func Get(serverName string, server string) (Entry, error) { - if server == "" { - server = ":http-alt" - } - client, err := rpc.DialHTTP("tcp", server) + client, err := DialRPC(server) if err != nil { return Entry{}, err } @@ -82,10 +80,7 @@ func (s GoXY) List(_ struct{}, r *Route) error { } func List(server string) (Route, error) { - if server == "" { - server = ":http-alt" - } - client, err := rpc.DialHTTP("tcp", server) + client, err := DialRPC(server) if err != nil { return nil, err } -- cgit v1.2.3 From 5215daf6ebf0316a57b09029ffe7b71608baafa1 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 28 Mar 2016 04:43:07 +0200 Subject: Not ready jet --- rpc.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index f33456f..032c3f4 100644 --- a/rpc.go +++ b/rpc.go @@ -1,9 +1,6 @@ package goxy -import ( - "log" - "net/rpc" -) +import "net/rpc" type GoXY struct { Server *Server @@ -23,7 +20,6 @@ func DialRPC(server string) (*rpc.Client, error) { // Add adds a new route (server) func (s *GoXY) Add(e Entry, _ *struct{}) error { - log.Println("Add route", e) defer s.Server.Save() s.Server.Route[e.ServerName] = e return s.Server.Restore() @@ -41,7 +37,6 @@ func Add(e Entry, server string) error { // Del removes a route (server) func (s *GoXY) Del(serverName string, _ *struct{}) error { - log.Println("Del route", serverName) defer s.Server.Save() delete(s.Server.Route, serverName) return s.Server.Restore() -- cgit v1.2.3 From 9a4e0f70c967c3905e4430824f420ce2dd68a92f Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 28 Mar 2016 15:51:40 +0200 Subject: Pass test --- rpc.go | 49 +++---------------------------------------------- 1 file changed, 3 insertions(+), 46 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 032c3f4..b514c64 100644 --- a/rpc.go +++ b/rpc.go @@ -18,71 +18,28 @@ func DialRPC(server string) (*rpc.Client, error) { return rpc.DialHTTP("tcp", server) } -// Add adds a new route (server) +// Add adds a new route func (s *GoXY) Add(e Entry, _ *struct{}) error { defer s.Server.Save() s.Server.Route[e.ServerName] = e return s.Server.Restore() } -// Add new entry (client) -func Add(e Entry, server string) error { - client, err := DialRPC(server) - if err != nil { - return err - } - defer client.Close() - return client.Call("GoXY.Add", e, nil) -} - -// Del removes a route (server) +// 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() } -// Del removes a route (client) -func Del(serverName string, server string) error { - client, err := DialRPC(server) - if err != nil { - return err - } - defer client.Close() - return client.Call("GoXY.Del", serverName, nil) -} - +// Get returns Entry func (s *GoXY) Get(serverName string, e *Entry) error { *e = s.Server.Route[serverName] return nil } -func Get(serverName string, server string) (Entry, error) { - client, err := DialRPC(server) - if err != nil { - return Entry{}, err - } - defer client.Close() - var e Entry - err = client.Call("GoXY.Get", serverName, &e) - return e, err -} - // List routes func (s GoXY) List(_ struct{}, r *Route) error { *r = s.Server.Route return nil } - -func List(server string) (Route, error) { - client, err := DialRPC(server) - if err != nil { - return nil, err - } - defer client.Close() - var r Route - if err := client.Call("GoXY.List", struct{}{}, &r); err != nil { - return nil, err - } - return r, nil -} -- cgit v1.2.3 From dbb5e2ce7f1ff71e29d4065957d0ab603d2157c0 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 28 Mar 2016 17:27:56 +0200 Subject: Add WS test --- rpc.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index b514c64..194bbf0 100644 --- a/rpc.go +++ b/rpc.go @@ -1,6 +1,11 @@ package goxy -import "net/rpc" +import ( + "net/rpc" + "sync" +) + +var once sync.Once type GoXY struct { Server *Server @@ -8,7 +13,7 @@ type GoXY struct { func Register(s *Server) { rpc.Register(&GoXY{s}) - rpc.HandleHTTP() + once.Do(rpc.HandleHTTP) } func DialRPC(server string) (*rpc.Client, error) { -- cgit v1.2.3 From 20ac254c678d769dff0bdfac7276e60b13a1ee80 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 29 Mar 2016 12:23:34 +0200 Subject: kiss --- rpc.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 194bbf0..2d843b3 100644 --- a/rpc.go +++ b/rpc.go @@ -1,19 +1,17 @@ package goxy -import ( - "net/rpc" - "sync" -) - -var once sync.Once +import "net/rpc" type GoXY struct { Server *Server } +func init() { + rpc.HandleHTTP() +} + func Register(s *Server) { rpc.Register(&GoXY{s}) - once.Do(rpc.HandleHTTP) } func DialRPC(server string) (*rpc.Client, error) { -- cgit v1.2.3 From 0d1620f5deaa4df8cee1870d6dce707b38aa8db9 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 29 Mar 2016 16:26:30 +0200 Subject: Rename --- rpc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 2d843b3..1bff95f 100644 --- a/rpc.go +++ b/rpc.go @@ -24,7 +24,7 @@ func DialRPC(server string) (*rpc.Client, error) { // Add adds a new route func (s *GoXY) Add(e Entry, _ *struct{}) error { defer s.Server.Save() - s.Server.Route[e.ServerName] = e + s.Server.Route[e.Host] = e return s.Server.Restore() } -- cgit v1.2.3 From bed5281851cf8dbbf512c88c71d6686c481e8119 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 29 Mar 2016 16:40:55 +0200 Subject: Consistent naming --- rpc.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 1bff95f..3dc113c 100644 --- a/rpc.go +++ b/rpc.go @@ -29,15 +29,15 @@ func (s *GoXY) Add(e Entry, _ *struct{}) error { } // Del removes a route -func (s *GoXY) Del(serverName string, _ *struct{}) error { +func (s *GoXY) Del(host string, _ *struct{}) error { defer s.Server.Save() - delete(s.Server.Route, serverName) + delete(s.Server.Route, host) return s.Server.Restore() } // Get returns Entry -func (s *GoXY) Get(serverName string, e *Entry) error { - *e = s.Server.Route[serverName] +func (s *GoXY) Get(host string, e *Entry) error { + *e = s.Server.Route[host] return nil } -- cgit v1.2.3 From 17e9094ebc0ca4a7d5c20dccf39c48bfa08449fd Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 29 Mar 2016 20:06:42 +0200 Subject: Unexport server --- rpc.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 3dc113c..49b9d21 100644 --- a/rpc.go +++ b/rpc.go @@ -3,7 +3,7 @@ package goxy import "net/rpc" type GoXY struct { - Server *Server + server *Server } func init() { @@ -23,26 +23,26 @@ func DialRPC(server string) (*rpc.Client, error) { // 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() + defer s.server.Save() + s.server.Route[e.Host] = e + return s.server.Restore() } // Del removes a route func (s *GoXY) Del(host string, _ *struct{}) error { - defer s.Server.Save() - delete(s.Server.Route, host) - return s.Server.Restore() + defer s.server.Save() + delete(s.server.Route, host) + return s.server.Restore() } // Get returns Entry func (s *GoXY) Get(host string, e *Entry) error { - *e = s.Server.Route[host] + *e = s.server.Route[host] return nil } // List routes func (s GoXY) List(_ struct{}, r *Route) error { - *r = s.Server.Route + *r = s.server.Route return nil } -- cgit v1.2.3 From 3071e59632c668696f8bf1c6d9e3bc07b61f6391 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 30 Mar 2016 11:17:28 +0200 Subject: Cleanup --- rpc.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'rpc.go') diff --git a/rpc.go b/rpc.go index 49b9d21..e6a674d 100644 --- a/rpc.go +++ b/rpc.go @@ -10,29 +10,26 @@ func init() { rpc.HandleHTTP() } -func Register(s *Server) { - rpc.Register(&GoXY{s}) +func RegisterRPC(s *Server) error { + return 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() + defer s.server.Save(s.server.DataFile) s.server.Route[e.Host] = e - return s.server.Restore() + return s.server.Update() } // Del removes a route func (s *GoXY) Del(host string, _ *struct{}) error { - defer s.server.Save() + defer s.server.Save(s.server.DataFile) delete(s.server.Route, host) - return s.server.Restore() + return s.server.Update() } // Get returns Entry -- cgit v1.2.3