package dhcp4 type OptionCode byte type Option struct { Code OptionCode Value []byte } // Map of DHCP options type Options map[OptionCode][]byte // SelectOrderOrAll has same functionality as SelectOrder, except if the order // param is nil, whereby all options are added (in arbitrary order). func (o Options) SelectOrderOrAll(order []byte) []Option { if order == nil { opts := make([]Option, 0, len(o)) for i, v := range o { opts = append(opts, Option{Code: i, Value: v}) } return opts } return o.SelectOrder(order) } // SelectOrder returns a slice of options ordered and selected by a byte array // usually defined by OptionParameterRequestList. This result is expected to be // used in ReplyPacket()'s []Option parameter. func (o Options) SelectOrder(order []byte) []Option { opts := make([]Option, 0, len(order)) for _, v := range order { if data, ok := o[OptionCode(v)]; ok { opts = append(opts, Option{Code: OptionCode(v), Value: data}) } } return opts } type OpCode byte type MessageType byte // Option 53