working offers

This commit is contained in:
2023-05-15 13:09:12 +00:00
parent f4fca2ffd0
commit cec46e68e8
29 changed files with 745 additions and 180 deletions

View File

@@ -10,6 +10,7 @@ go_library(
visibility = ["//visibility:public"],
deps = [
"//iptools",
"//leases",
"@dev_wntrmute_git_kyle_goutils//log",
"@in_gopkg_yaml_v2//:yaml_v2",
],

View File

@@ -8,6 +8,7 @@ import (
log "git.wntrmute.dev/kyle/goutils/log"
"git.wntrmute.dev/kyle/kdhcp/iptools"
"git.wntrmute.dev/kyle/kdhcp/leases"
"gopkg.in/yaml.v2"
)
@@ -33,6 +34,24 @@ type Network struct {
Domain string `yaml:"domain"`
}
func (n Network) NetworkInfo() *leases.Server {
lnet := &leases.Network{
Mask: iptools.NetIPtoAddr(n.Mask),
Gateway: iptools.NetIPtoAddr(n.Gateway),
Domain: n.Domain,
Broadcast: iptools.NetIPtoAddr(n.Broadcast),
}
for _, addr := range n.DNS {
lnet.DNS = append(lnet.DNS, iptools.NetIPtoAddr(addr))
}
return &leases.Server{
Addr: iptools.NetIPtoAddr(n.IP),
Network: lnet,
}
}
func (n *Network) ensureV4() (err error) {
n.IP, err = ensureV4(n.IP)
if err != nil {