dhcp4d: introduce -interface flag
This commit is contained in:
parent
c211763b5d
commit
c602f1d6b6
@ -42,6 +42,8 @@ import (
|
|||||||
"github.com/rtr7/router7/internal/teelogger"
|
"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 log = teelogger.NewConsole()
|
||||||
|
|
||||||
var nonExpiredLeases = promauto.NewGauge(prometheus.GaugeOpts{
|
var nonExpiredLeases = promauto.NewGauge(prometheus.GaugeOpts{
|
||||||
@ -137,7 +139,11 @@ func logic() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
errs := make(chan error)
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -163,7 +169,7 @@ func logic() error {
|
|||||||
log.Printf("notifying dnsd: %v", err)
|
log.Printf("notifying dnsd: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
conn, err := conn.NewUDP4BoundListener("lan0", ":67") // TODO: customizeable
|
conn, err := conn.NewUDP4BoundListener(*iface, ":67")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -59,13 +59,13 @@ type Handler struct {
|
|||||||
Leases func([]*Lease, *Lease)
|
Leases func([]*Lease, *Lease)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewHandler(dir string, iface *net.Interface, conn net.PacketConn) (*Handler, error) {
|
func NewHandler(dir string, iface *net.Interface, ifaceName string, conn net.PacketConn) (*Handler, error) {
|
||||||
serverIP, err := netconfig.LinkAddress(dir, "lan0")
|
serverIP, err := netconfig.LinkAddress(dir, ifaceName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if iface == nil {
|
if iface == nil {
|
||||||
iface, err = net.InterfaceByName("lan0")
|
iface, err = net.InterfaceByName(ifaceName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user