dhcp6: inspect server advertisment IAPD and report error, if any

The fiber7 DHCPv6 servers (sometimes?) use this field for reporting errors.
This commit is contained in:
Michael Stapelberg 2020-07-02 22:06:55 +02:00
parent 281f876834
commit ae8cfee616

View File

@ -266,6 +266,14 @@ func (c *Client) ObtainOrRenew() bool {
} }
c.advertise = advertise c.advertise = advertise
if iapd := advertise.Options.OneIAPD(); iapd != nil {
if status := iapd.Options.Status(); status != nil && status.StatusCode != iana.StatusSuccess {
c.err = fmt.Errorf("IAPD error: %v (%v)", status.StatusCode, status.StatusMessage)
return false
}
}
_, reply, err := c.request(advertise) _, reply, err := c.request(advertise)
if err != nil { if err != nil {
c.err = err c.err = err