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)
|
||
|
}
|