From 3071e59632c668696f8bf1c6d9e3bc07b61f6391 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 30 Mar 2016 11:17:28 +0200 Subject: Cleanup --- server.go | 42 ++++++++---------------------------------- 1 file changed, 8 insertions(+), 34 deletions(-) (limited to 'server.go') diff --git a/server.go b/server.go index e7ba6cd..9300497 100644 --- a/server.go +++ b/server.go @@ -2,11 +2,9 @@ package goxy import ( "crypto/tls" - "encoding/json" "net/http" "net/http/httputil" "net/url" - "os" "strings" ) @@ -16,43 +14,19 @@ type Server struct { http.Server } -func NewServer(fname string) (*Server, error) { +func NewServer(dataFile string) (*Server, error) { r := make(Route) s := http.Server{TLSConfig: &tls.Config{GetCertificate: r.GetCertificate}} - server := &Server{Route: r, Server: s, DataFile: fname} - server.Load() - Register(server) - return server, server.Restore() -} - -// Save routes to persistent file -func (s Server) Save() error { - if s.DataFile == "" { - return nil - } - fd, err := os.Create(s.DataFile) - if err != nil { - return err - } - defer fd.Close() - return json.NewEncoder(fd).Encode(s.Route) -} - -// Load routes from persistent file -func (s *Server) Load() error { - if s.DataFile == "" { - return nil - } - fd, err := os.Open(s.DataFile) - if err != nil { - return err + server := &Server{Route: r, Server: s, DataFile: dataFile} + if dataFile != "" { + server.Load(dataFile) } - defer fd.Close() - return json.NewDecoder(fd).Decode(&s.Route) + RegisterRPC(server) + return server, server.Update() } -// Restore and update routes from in-memory state -func (s *Server) Restore() error { +// Update routes from in-memory state +func (s *Server) Update() error { mux := http.NewServeMux() for k, v := range s.Route { if v.Cert != nil && v.Key != nil { -- cgit v1.2.3