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"
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)
},
})
}

@ -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
}

Loading…
Cancel
Save