* control: refactor: move DHCP lease -> json convertor to a separate function

This commit is contained in:
Simon Zolin 2019-05-14 13:53:59 +03:00
parent 725aeeb910
commit fd593f5282
1 changed files with 20 additions and 12 deletions

32
dhcp.go
View File

@ -20,20 +20,28 @@ import (
var dhcpServer = dhcpd.Server{}
// []dhcpd.Lease -> JSON
func convertLeases(inputLeases []dhcpd.Lease, includeExpires bool) []map[string]string {
leases := []map[string]string{}
for _, l := range inputLeases {
lease := map[string]string{
"mac": l.HWAddr.String(),
"ip": l.IP.String(),
"hostname": l.Hostname,
}
if includeExpires {
lease["expires"] = l.Expiry.Format(time.RFC3339)
}
leases = append(leases, lease)
}
return leases
}
func handleDHCPStatus(w http.ResponseWriter, r *http.Request) {
log.Tracef("%s %v", r.Method, r.URL)
rawLeases := dhcpServer.Leases()
leases := []map[string]string{}
for i := range rawLeases {
lease := map[string]string{
"mac": rawLeases[i].HWAddr.String(),
"ip": rawLeases[i].IP.String(),
"hostname": rawLeases[i].Hostname,
"expires": rawLeases[i].Expiry.Format(time.RFC3339),
}
leases = append(leases, lease)
}
leases := convertLeases(dhcpServer.Leases(), true)
status := map[string]interface{}{
"config": config.DHCP,
"leases": leases,