func (c *client) renew(cl *dhcp4client.Client) (dhcp4.Packet, error) { defer trace.End(trace.Begin("")) rp := cl.RenewalRequestPacket(&c.ack) rp, err := c.setOptions(rp) if err != nil { return nil, err } rp.PadToMinSize() if err = cl.SendPacket(rp); err != nil { return nil, err } newack, err := cl.GetAcknowledgement(&rp) if err != nil { return nil, err } opts := newack.ParseOptions() if dhcp4.MessageType(opts[dhcp4.OptionDHCPMessageType][0]) == dhcp4.NAK { return nil, fmt.Errorf("received NAK from DHCP server") } return newack, nil }
func (c *client) renew(id ID, ack dhcp4.Packet, cl *dhcp4client.Client) (dhcp4.Packet, error) { rp := cl.RenewalRequestPacket(&ack) _, err := c.appendOptions(&rp, id) if err != nil { return nil, err } rp.PadToMinSize() if err = cl.SendPacket(rp); err != nil { return nil, err } newack, err := cl.GetAcknowledgement(&rp) if err != nil { return nil, err } opts := newack.ParseOptions() if dhcp4.MessageType(opts[dhcp4.OptionDHCPMessageType][0]) == dhcp4.NAK { return nil, fmt.Errorf("received NAK from DHCP server") } return newack, nil }