iptools: reorganizing and continuing pool work

This commit is contained in:
2023-05-03 02:57:04 +00:00
parent 77c21c9747
commit 842181f555
14 changed files with 360 additions and 31 deletions

View File

@@ -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)
}