iptools: reorganizing and continuing pool work
This commit is contained in:
@@ -2,6 +2,7 @@ package dhcp
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
)
|
||||
|
||||
@@ -11,14 +12,14 @@ type Option func(req *BootRequest, r io.Reader) error
|
||||
|
||||
const (
|
||||
OptionTagPadding OptionTag = 0
|
||||
OptionTagHostName = 12
|
||||
OptionTagMessageType = 53
|
||||
OptionTagParameterRequestList = 55
|
||||
OptionTagEnd = 255
|
||||
OptionTagHostName OptionTag = 12
|
||||
OptionTagMessageType OptionTag = 53
|
||||
OptionTagParameterRequestList OptionTag = 55
|
||||
OptionTagEnd OptionTag = 255
|
||||
)
|
||||
|
||||
var optionRegistry = map[OptionTag]Option{
|
||||
OptionTagPadding: OptionTag,
|
||||
OptionTagPadding: OptionPad,
|
||||
OptionTagHostName: OptionHostName,
|
||||
OptionTagMessageType: OptionMessageType,
|
||||
OptionTagParameterRequestList: OptionParameterRequestList,
|
||||
@@ -44,3 +45,13 @@ func OptionParameterRequestList(req *BootRequest, r io.Reader) error {
|
||||
func OptionEnd(req *BootRequest, r io.Reader) error {
|
||||
return errors.New("dhcp: option not implemented yet")
|
||||
}
|
||||
|
||||
func ReadOption(req *BootRequest, tag byte, r io.Reader) error {
|
||||
opt := OptionTag(tag)
|
||||
if f, ok := optionRegistry[opt]; ok {
|
||||
return f(req, r)
|
||||
|
||||
}
|
||||
|
||||
return fmt.Errorf("dhcp: unknown/unhandled option %d", opt)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user