fix: Fix connection interface binding, JSON lease DB

This commit is contained in:
Adrian Rumpold
2024-01-09 12:23:41 +01:00
parent cb8b6c03b6
commit ac7185bfb5
8 changed files with 277 additions and 75 deletions

View File

@@ -1,5 +1,37 @@
package types
import (
"fmt"
"net"
)
type TxId [4]byte
type Ipv4Addr [4]byte
type HwAddr [16]byte
const (
ServerPort = 67
ClientPort = 68
)
func Ipv4AddrFromNetIP(ip net.IP) Ipv4Addr {
ipv4 := ip.To4()
return Ipv4Addr{ipv4[0], ipv4[1], ipv4[2], ipv4[3]}
}
func (addr Ipv4Addr) ToNetIPv4() net.IP {
return net.IPv4(addr[0], addr[1], addr[2], addr[3])
}
func (addr Ipv4Addr) String() string {
return addr.ToNetIPv4().String()
}
func (addr HwAddr) String() string {
return fmt.Sprintf("%02x:%02x:%02x:%02x:%02x:%02x", addr[0], addr[1], addr[2], addr[3], addr[4], addr[5])
}
func HwAddrFromString(s string) (addr HwAddr, err error) {
_, err = fmt.Sscanf(s, "%02x:%02x:%02x:%02x:%02x:%02x", &addr[0], &addr[1], &addr[2], &addr[3], &addr[4], &addr[5])
return addr, err
}