Refactoring

pull/18/head
Hugo Landau 9 years ago
parent 3ef4327136
commit b21fef1b47

@ -6,7 +6,7 @@ import "github.com/hlandau/ncdns/server"
import "path/filepath" import "path/filepath"
func main() { func main() {
cfg := server.ServerConfig{} cfg := server.Config{}
config := easyconfig.Configurator{ config := easyconfig.Configurator{
ProgramName: "ncdns", ProgramName: "ncdns",
@ -17,31 +17,10 @@ func main() {
cfg.ConfigDir = filepath.Dir(config.ConfigFilePath()) cfg.ConfigDir = filepath.Dir(config.ConfigFilePath())
service.Main(&service.Info{ service.Main(&service.Info{
Name: "ncdns",
Description: "Namecoin to DNS Daemon", Description: "Namecoin to DNS Daemon",
DefaultChroot: service.EmptyChrootPath, DefaultChroot: service.EmptyChrootPath,
RunFunc: func(smgr service.Manager) error { NewFunc: func() (service.Runnable, error) {
s, err := server.NewServer(&cfg) return server.New(&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
}, },
}) })
} }

@ -18,7 +18,7 @@ const version = "1.0"
var log, Log = xlog.New("ncdns.server") var log, Log = xlog.New("ncdns.server")
type Server struct { type Server struct {
cfg ServerConfig cfg Config
engine madns.Engine engine madns.Engine
namecoinConn namecoin.Conn namecoinConn namecoin.Conn
@ -29,7 +29,7 @@ type Server struct {
wgStart sync.WaitGroup 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)"` 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"` 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"` 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 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) return filepath.Join(cfg.ConfigDir, s)
} }
func NewServer(cfg *ServerConfig) (s *Server, err error) { func New(cfg *Config) (s *Server, err error) {
s = &Server{ s = &Server{
cfg: *cfg, cfg: *cfg,
namecoinConn: namecoin.Conn{ namecoinConn: namecoin.Conn{
@ -199,3 +199,7 @@ func (s *Server) runListener(net string) *dns.Server {
go s.doRunListener(ds) go s.doRunListener(ds)
return ds return ds
} }
func (s *Server) Stop() error {
return nil // TODO
}

Loading…
Cancel
Save