diff --git a/home/clients.go b/home/clients.go index d0767e47..0c003a56 100644 --- a/home/clients.go +++ b/home/clients.go @@ -122,7 +122,7 @@ func (clients *clientsContainer) Find(ip string) (Client, bool) { if err != nil { continue } - ipAddr := dhcpServer.FindIPbyMAC(mac) + ipAddr := config.dhcpServer.FindIPbyMAC(mac) if ipAddr == nil { continue } @@ -395,7 +395,7 @@ func handleGetClients(w http.ResponseWriter, r *http.Request) { if len(c.MAC) != 0 { hwAddr, _ := net.ParseMAC(c.MAC) - ipAddr := dhcpServer.FindIPbyMAC(hwAddr) + ipAddr := config.dhcpServer.FindIPbyMAC(hwAddr) if ipAddr != nil { cj.IP = ipAddr.String() } diff --git a/home/config.go b/home/config.go index e3e1c0ab..0900c9d8 100644 --- a/home/config.go +++ b/home/config.go @@ -70,6 +70,7 @@ type configuration struct { versionCheckJSON []byte versionCheckLastTime time.Time + dhcpServer dhcpd.Server httpServer *http.Server httpsServer HTTPSServer diff --git a/home/dhcp.go b/home/dhcp.go index 066e6843..078647f0 100644 --- a/home/dhcp.go +++ b/home/dhcp.go @@ -18,8 +18,6 @@ import ( "github.com/joomcode/errorx" ) -var dhcpServer = dhcpd.Server{} - // []dhcpd.Lease -> JSON func convertLeases(inputLeases []dhcpd.Lease, includeExpires bool) []map[string]string { leases := []map[string]string{} @@ -41,8 +39,8 @@ func convertLeases(inputLeases []dhcpd.Lease, includeExpires bool) []map[string] func handleDHCPStatus(w http.ResponseWriter, r *http.Request) { log.Tracef("%s %v", r.Method, r.URL) - leases := convertLeases(dhcpServer.Leases(), true) - staticLeases := convertLeases(dhcpServer.StaticLeases(), false) + leases := convertLeases(config.dhcpServer.Leases(), true) + staticLeases := convertLeases(config.dhcpServer.StaticLeases(), false) status := map[string]interface{}{ "config": config.DHCP, "leases": leases, @@ -77,18 +75,18 @@ func handleDHCPSetConfig(w http.ResponseWriter, r *http.Request) { return } - err = dhcpServer.CheckConfig(newconfig.ServerConfig) + err = config.dhcpServer.CheckConfig(newconfig.ServerConfig) if err != nil { httpError(w, http.StatusBadRequest, "Invalid DHCP configuration: %s", err) return } - err = dhcpServer.Stop() + err = config.dhcpServer.Stop() if err != nil { log.Error("failed to stop the DHCP server: %s", err) } - err = dhcpServer.Init(newconfig.ServerConfig) + err = config.dhcpServer.Init(newconfig.ServerConfig) if err != nil { httpError(w, http.StatusBadRequest, "Invalid DHCP configuration: %s", err) return @@ -105,7 +103,7 @@ func handleDHCPSetConfig(w http.ResponseWriter, r *http.Request) { } } - err = dhcpServer.Start() + err = config.dhcpServer.Start() if err != nil { httpError(w, http.StatusBadRequest, "Failed to start DHCP server: %s", err) return @@ -389,7 +387,7 @@ func handleDHCPAddStaticLease(w http.ResponseWriter, r *http.Request) { HWAddr: mac, Hostname: lj.Hostname, } - err = dhcpServer.AddStaticLease(lease) + err = config.dhcpServer.AddStaticLease(lease) if err != nil { httpError(w, http.StatusBadRequest, "%s", err) return @@ -420,7 +418,7 @@ func handleDHCPRemoveStaticLease(w http.ResponseWriter, r *http.Request) { HWAddr: mac, Hostname: lj.Hostname, } - err = dhcpServer.RemoveStaticLease(lease) + err = config.dhcpServer.RemoveStaticLease(lease) if err != nil { httpError(w, http.StatusBadRequest, "%s", err) return @@ -434,12 +432,12 @@ func startDHCPServer() error { return nil } - err := dhcpServer.Init(config.DHCP) + err := config.dhcpServer.Init(config.DHCP) if err != nil { return errorx.Decorate(err, "Couldn't init DHCP server") } - err = dhcpServer.Start() + err = config.dhcpServer.Start() if err != nil { return errorx.Decorate(err, "Couldn't start DHCP server") } @@ -451,7 +449,7 @@ func stopDHCPServer() error { return nil } - err := dhcpServer.Stop() + err := config.dhcpServer.Stop() if err != nil { return errorx.Decorate(err, "Couldn't stop DHCP server") }