dhcp4d: introduce -interface flag

This commit is contained in:
Michael Stapelberg 2019-07-20 10:50:30 +02:00
parent c211763b5d
commit c602f1d6b6
2 changed files with 11 additions and 5 deletions

View File

@ -42,6 +42,8 @@ import (
"github.com/rtr7/router7/internal/teelogger"
)
var iface = flag.String("interface", "lan0", "ethernet interface to listen for DHCPv4 requests on")
var log = teelogger.NewConsole()
var nonExpiredLeases = promauto.NewGauge(prometheus.GaugeOpts{
@ -137,7 +139,11 @@ func logic() error {
return err
}
errs := make(chan error)
handler, err := dhcp4d.NewHandler("/perm", nil, nil)
ifc, err := net.InterfaceByName(*iface)
if err != nil {
return err
}
handler, err := dhcp4d.NewHandler("/perm", ifc, *iface, nil)
if err != nil {
return err
}
@ -163,7 +169,7 @@ func logic() error {
log.Printf("notifying dnsd: %v", err)
}
}
conn, err := conn.NewUDP4BoundListener("lan0", ":67") // TODO: customizeable
conn, err := conn.NewUDP4BoundListener(*iface, ":67")
if err != nil {
return err
}

View File

@ -59,13 +59,13 @@ type Handler struct {
Leases func([]*Lease, *Lease)
}
func NewHandler(dir string, iface *net.Interface, conn net.PacketConn) (*Handler, error) {
serverIP, err := netconfig.LinkAddress(dir, "lan0")
func NewHandler(dir string, iface *net.Interface, ifaceName string, conn net.PacketConn) (*Handler, error) {
serverIP, err := netconfig.LinkAddress(dir, ifaceName)
if err != nil {
return nil, err
}
if iface == nil {
iface, err = net.InterfaceByName("lan0")
iface, err = net.InterfaceByName(ifaceName)
if err != nil {
return nil, err
}