From b21fef1b47b2b9eb68ba5ac6643197c35f92ec5b Mon Sep 17 00:00:00 2001 From: Hugo Landau Date: Tue, 29 Sep 2015 09:13:59 +0100 Subject: [PATCH] Refactoring --- main.go | 27 +++------------------------ server/server.go | 12 ++++++++---- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/main.go b/main.go index 8afd0d7..d86f6ec 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,7 @@ import "github.com/hlandau/ncdns/server" import "path/filepath" func main() { - cfg := server.ServerConfig{} + cfg := server.Config{} config := easyconfig.Configurator{ ProgramName: "ncdns", @@ -17,31 +17,10 @@ func main() { cfg.ConfigDir = filepath.Dir(config.ConfigFilePath()) service.Main(&service.Info{ - Name: "ncdns", Description: "Namecoin to DNS Daemon", DefaultChroot: service.EmptyChrootPath, - RunFunc: func(smgr service.Manager) error { - s, err := server.NewServer(&cfg) - if err != nil { - return err - } - - err = s.Start() - if err != nil { - return err - } - - err = smgr.DropPrivileges() - if err != nil { - return err - } - - smgr.SetStarted() - smgr.SetStatus("ncdns: running ok") - - <-smgr.StopChan() - - return nil + NewFunc: func() (service.Runnable, error) { + return server.New(&cfg) }, }) } diff --git a/server/server.go b/server/server.go index ae14b47..f9b2d96 100644 --- a/server/server.go +++ b/server/server.go @@ -18,7 +18,7 @@ const version = "1.0" var log, Log = xlog.New("ncdns.server") type Server struct { - cfg ServerConfig + cfg Config engine madns.Engine namecoinConn namecoin.Conn @@ -29,7 +29,7 @@ type Server struct { wgStart sync.WaitGroup } -type ServerConfig struct { +type Config struct { Bind string `default:":53" usage:"Address to bind to (e.g. 0.0.0.0:53)"` PublicKey string `default:"" usage:"Path to the DNSKEY KSK public key file"` PrivateKey string `default:"" usage:"Path to the KSK's corresponding private key file"` @@ -57,11 +57,11 @@ type ServerConfig struct { ConfigDir string // path to interpret filenames relative to } -func (cfg *ServerConfig) cpath(s string) string { +func (cfg *Config) cpath(s string) string { return filepath.Join(cfg.ConfigDir, s) } -func NewServer(cfg *ServerConfig) (s *Server, err error) { +func New(cfg *Config) (s *Server, err error) { s = &Server{ cfg: *cfg, namecoinConn: namecoin.Conn{ @@ -199,3 +199,7 @@ func (s *Server) runListener(net string) *dns.Server { go s.doRunListener(ds) return ds } + +func (s *Server) Stop() error { + return nil // TODO +}