dhcp6: only call net.InterfaceByName when client is constructed
This commit is contained in:
parent
26075c4957
commit
1a65f972c6
@ -59,6 +59,7 @@ type Config struct {
|
|||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
interfaceName string
|
interfaceName string
|
||||||
|
hardwareAddr net.HardwareAddr
|
||||||
raddr *net.UDPAddr
|
raddr *net.UDPAddr
|
||||||
timeNow func() time.Time
|
timeNow func() time.Time
|
||||||
duid *dhcpv6.Duid
|
duid *dhcpv6.Duid
|
||||||
@ -118,11 +119,6 @@ func NewClient(cfg ClientConfig) (*Client, error) {
|
|||||||
}
|
}
|
||||||
fmt.Printf("duid: %T, %v, %#v", duid, duid, duid)
|
fmt.Printf("duid: %T, %v, %#v", duid, duid, duid)
|
||||||
} else {
|
} else {
|
||||||
iface, err := net.InterfaceByName(cfg.InterfaceName)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
duid = &dhcpv6.Duid{
|
duid = &dhcpv6.Duid{
|
||||||
Type: dhcpv6.DUID_LLT,
|
Type: dhcpv6.DUID_LLT,
|
||||||
HwType: iana.HWTypeEthernet,
|
HwType: iana.HWTypeEthernet,
|
||||||
@ -143,6 +139,7 @@ func NewClient(cfg ClientConfig) (*Client, error) {
|
|||||||
|
|
||||||
return &Client{
|
return &Client{
|
||||||
interfaceName: cfg.InterfaceName,
|
interfaceName: cfg.InterfaceName,
|
||||||
|
hardwareAddr: iface.HardwareAddr,
|
||||||
timeNow: time.Now,
|
timeNow: time.Now,
|
||||||
raddr: raddr,
|
raddr: raddr,
|
||||||
Conn: conn,
|
Conn: conn,
|
||||||
@ -217,11 +214,7 @@ func (c *Client) sendReceive(packet *dhcpv6.Message, expectedType dhcpv6.Message
|
|||||||
func (c *Client) solicit(solicit *dhcpv6.Message) (*dhcpv6.Message, *dhcpv6.Message, error) {
|
func (c *Client) solicit(solicit *dhcpv6.Message) (*dhcpv6.Message, *dhcpv6.Message, error) {
|
||||||
var err error
|
var err error
|
||||||
if solicit == nil {
|
if solicit == nil {
|
||||||
iface, err := net.InterfaceByName(c.interfaceName)
|
solicit, err = dhcpv6.NewSolicit(c.hardwareAddr, dhcpv6.WithClientID(*c.duid))
|
||||||
if err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
solicit, err = dhcpv6.NewSolicit(iface.HardwareAddr, dhcpv6.WithClientID(*c.duid))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user