1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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
|