mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-11-28 09:58:52 +03:00
Stop()
This commit is contained in:
parent
2ec69bc6ed
commit
c8db736745
2 changed files with 23 additions and 7 deletions
|
@ -47,7 +47,7 @@ type ServerConfig struct {
|
|||
// 0: disable
|
||||
ICMPTimeout uint32 `json:"icmp_timeout_msec" yaml:"icmp_timeout_msec"`
|
||||
|
||||
Conf6 V6ServerConf `yaml:"dhcpv6"`
|
||||
Conf6 V6ServerConf `json:"-" yaml:"dhcpv6"`
|
||||
|
||||
WorkDir string `json:"-" yaml:"-"`
|
||||
DBFilePath string `json:"-" yaml:"-"` // path to DB file
|
||||
|
@ -133,8 +133,10 @@ func Create(config ServerConfig) *Server {
|
|||
s.registerHandlers()
|
||||
}
|
||||
|
||||
s.srv6 = v6Create(config.Conf6)
|
||||
var err error
|
||||
s.srv6, err = v6Create(config.Conf6)
|
||||
if s.srv6 == nil {
|
||||
log.Error("%s", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -279,6 +281,8 @@ func (s *Server) Start() error {
|
|||
|
||||
// Stop closes the listening UDP socket
|
||||
func (s *Server) Stop() error {
|
||||
s.srv6.Stop()
|
||||
|
||||
if s.conn == nil {
|
||||
// nothing to do, return silently
|
||||
return nil
|
||||
|
|
22
dhcpd/v6.go
22
dhcpd/v6.go
|
@ -314,18 +314,30 @@ func (s *V6Server) Start(iface net.Interface) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func v6Create(conf V6ServerConf) *V6Server {
|
||||
// Stop - stop server
|
||||
func (s *V6Server) Stop() {
|
||||
if s.srv == nil {
|
||||
return
|
||||
}
|
||||
|
||||
err := s.srv.Close()
|
||||
if err != nil {
|
||||
log.Error("DHCPv6: srv.Close: %s", err)
|
||||
}
|
||||
// now server.Serve() will return
|
||||
}
|
||||
|
||||
func v6Create(conf V6ServerConf) (*V6Server, error) {
|
||||
s := &V6Server{}
|
||||
s.conf = conf
|
||||
|
||||
if !conf.Enabled {
|
||||
return s
|
||||
return s, nil
|
||||
}
|
||||
|
||||
s.conf.ipStart = net.ParseIP(conf.RangeStart)
|
||||
if s.conf.ipStart == nil {
|
||||
log.Error("DHCPv6: invalid range-start IP: %s", conf.RangeStart)
|
||||
return nil
|
||||
return nil, fmt.Errorf("DHCPv6: invalid range-start IP: %s", conf.RangeStart)
|
||||
}
|
||||
|
||||
if conf.LeaseDuration == 0 {
|
||||
|
@ -335,5 +347,5 @@ func v6Create(conf V6ServerConf) *V6Server {
|
|||
s.conf.leaseTime = time.Second * time.Duration(conf.LeaseDuration)
|
||||
}
|
||||
|
||||
return s
|
||||
return s, nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue