summaryrefslogtreecommitdiffhomepage
path: root/dhcpv4/bsdp/boot_image.go
diff options
context:
space:
mode:
authorPablo Mazzini <pmazzini@gmail.com>2023-12-04 10:33:34 +0000
committerinsomniac <insomniacslk@users.noreply.github.com>2023-12-06 07:48:09 +0100
commit8c70d406f6d24a17219a5f543174c1f3f3ad9e35 (patch)
tree7f9acc8e465b9b354dea197f1d77698370e648ab /dhcpv4/bsdp/boot_image.go
parentb0416c0f187a65a350b32d34fc31ea30f06c12ce (diff)
remove bsdp packageHEADmaster
Diffstat (limited to 'dhcpv4/bsdp/boot_image.go')
-rw-r--r--dhcpv4/bsdp/boot_image.go136
1 files changed, 0 insertions, 136 deletions
diff --git a/dhcpv4/bsdp/boot_image.go b/dhcpv4/bsdp/boot_image.go
deleted file mode 100644
index 5e81530..0000000
--- a/dhcpv4/bsdp/boot_image.go
+++ /dev/null
@@ -1,136 +0,0 @@
-package bsdp
-
-import (
- "fmt"
-
- "github.com/insomniacslk/dhcp/dhcpv4"
- "github.com/u-root/uio/uio"
-)
-
-// BootImageType represents the different BSDP boot image types.
-type BootImageType byte
-
-// Different types of BootImages - e.g. for different flavors of macOS.
-const (
- BootImageTypeMacOS9 BootImageType = 0
- BootImageTypeMacOSX BootImageType = 1
- BootImageTypeMacOSXServer BootImageType = 2
- BootImageTypeHardwareDiagnostics BootImageType = 3
- // 4 - 127 are reserved for future use.
-)
-
-// bootImageTypeToString maps the different BootImageTypes to human-readable
-// representations.
-var bootImageTypeToString = map[BootImageType]string{
- BootImageTypeMacOS9: "macOS 9",
- BootImageTypeMacOSX: "macOS",
- BootImageTypeMacOSXServer: "macOS Server",
- BootImageTypeHardwareDiagnostics: "Hardware Diagnostic",
-}
-
-// BootImageID describes a boot image ID - whether it's an install image and
-// what kind of boot image (e.g. OS 9, macOS, hardware diagnostics)
-type BootImageID struct {
- IsInstall bool
- ImageType BootImageType
- Index uint16
-}
-
-// ToBytes implements dhcpv4.OptionValue.
-func (b BootImageID) ToBytes() []byte {
- return uio.ToBigEndian(b)
-}
-
-// FromBytes reads data into b.
-func (b *BootImageID) FromBytes(data []byte) error {
- return uio.FromBigEndian(b, data)
-}
-
-// Marshal writes the binary representation to buf.
-func (b BootImageID) Marshal(buf *uio.Lexer) {
- var byte0 byte
- if b.IsInstall {
- byte0 |= 0x80
- }
- byte0 |= byte(b.ImageType)
- buf.Write8(byte0)
- buf.Write8(byte(0))
- buf.Write16(b.Index)
-}
-
-// String converts a BootImageID to a human-readable representation.
-func (b BootImageID) String() string {
- s := fmt.Sprintf("[%d]", b.Index)
- if b.IsInstall {
- s += " installable"
- } else {
- s += " uninstallable"
- }
- t, ok := bootImageTypeToString[b.ImageType]
- if !ok {
- t = "unknown"
- }
- return s + " " + t + " image"
-}
-
-// Unmarshal reads b's binary representation from buf.
-func (b *BootImageID) Unmarshal(buf *uio.Lexer) error {
- byte0 := buf.Read8()
- _ = buf.Read8()
- b.IsInstall = byte0&0x80 != 0
- b.ImageType = BootImageType(byte0 & 0x7f)
- b.Index = buf.Read16()
- return buf.Error()
-}
-
-// BootImage describes a boot image - contains the boot image ID and the name.
-type BootImage struct {
- ID BootImageID
- Name string
-}
-
-// Marshal write a BootImage to buf.
-func (b BootImage) Marshal(buf *uio.Lexer) {
- b.ID.Marshal(buf)
- buf.Write8(uint8(len(b.Name)))
- buf.WriteBytes([]byte(b.Name))
-}
-
-// String converts a BootImage to a human-readable representation.
-func (b BootImage) String() string {
- return fmt.Sprintf("%v %v", b.Name, b.ID.String())
-}
-
-// Unmarshal reads data from buf into b.
-func (b *BootImage) Unmarshal(buf *uio.Lexer) error {
- if err := (&b.ID).Unmarshal(buf); err != nil {
- return err
- }
- nameLength := buf.Read8()
- b.Name = string(buf.Consume(int(nameLength)))
- return buf.Error()
-}
-
-func getBootImageID(code dhcpv4.OptionCode, o dhcpv4.Options) *BootImageID {
- v := o.Get(code)
- if v == nil {
- return nil
- }
- var b BootImageID
- if err := uio.FromBigEndian(&b, v); err != nil {
- return nil
- }
- return &b
-}
-
-// OptDefaultBootImageID returns a new default boot image ID option as per
-// BSDP.
-func OptDefaultBootImageID(b BootImageID) dhcpv4.Option {
- return dhcpv4.Option{Code: OptionDefaultBootImageID, Value: b}
-}
-
-// OptSelectedBootImageID returns a new selected boot image ID option as per
-// BSDP.
-func OptSelectedBootImageID(b BootImageID) dhcpv4.Option {
- return dhcpv4.Option{Code: OptionSelectedBootImageID, Value: b}
-}