60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package main
|
|
|
|
import "context"
|
|
import "fmt"
|
|
import "haza"
|
|
import "net"
|
|
import "os"
|
|
//import "time"
|
|
|
|
func main() {
|
|
var ds *haza.DhcpServer
|
|
var logger *AppLogger
|
|
var addr *net.UDPAddr
|
|
var addr2 *net.UDPAddr
|
|
var err error
|
|
|
|
// addr, err = net.ResolveUDPAddr("udp4", "0.0.0.0:10000")
|
|
addr, err = net.ResolveUDPAddr("udp4", "192.168.1.130:10000")
|
|
if err != nil {
|
|
fmt.Printf("Failed to resolve address - %s\n", err.Error())
|
|
os.Exit(-1)
|
|
}
|
|
|
|
addr2, err = net.ResolveUDPAddr("udp4", "192.168.1.114:10000")
|
|
if err != nil {
|
|
fmt.Printf("Failed to resolve address - %s\n", err.Error())
|
|
os.Exit(-1)
|
|
}
|
|
|
|
logger = NewAppLogger("client", os.Stderr, haza.LOG_ALL)
|
|
|
|
ds, err = haza.NewDhcpServer(context.Background(), "haza-dhcpd", logger)
|
|
if err != nil {
|
|
fmt.Printf("Failed to create dhcp server - %s\n", err.Error())
|
|
goto oops
|
|
}
|
|
|
|
// consider this if you want some more freedom on supported systems
|
|
// sysctl -w net.ipv4.ip_nonlocal_bind=1
|
|
|
|
//ds.AddListener("tun0", addr)
|
|
err = ds.AddListener4("enp1s0", addr)
|
|
if err != nil {
|
|
fmt.Printf("Failed to add listgener for %v - %s\n", addr, err.Error())
|
|
goto oops
|
|
}
|
|
err = ds.AddListener4("enp1s0", addr2)
|
|
if err != nil {
|
|
fmt.Printf("Failed to add listgener for %v - %s\n", addr2, err.Error())
|
|
goto oops
|
|
}
|
|
|
|
ds.StartService(nil)
|
|
ds.WaitForTermination()
|
|
os.Exit(0)
|
|
|
|
oops:
|
|
os.Exit(-1)
|
|
}
|