diff options
Diffstat (limited to 'dhcpv4/option_domain_search.go')
-rw-r--r-- | dhcpv4/option_domain_search.go | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/dhcpv4/option_domain_search.go b/dhcpv4/option_domain_search.go index e352e34..6d2f7b2 100644 --- a/dhcpv4/option_domain_search.go +++ b/dhcpv4/option_domain_search.go @@ -1,41 +1,27 @@ package dhcpv4 import ( - "fmt" - "github.com/insomniacslk/dhcp/rfc1035label" ) -// OptDomainSearch implements the domain search list option described by RFC -// 3397, Section 2. +// OptDomainSearch returns a new domain search option. // -// FIXME: rename OptDomainSearch to OptDomainSearchList, and DomainSearch to -// SearchList, for consistency with the equivalent v6 option -type OptDomainSearch struct { - DomainSearch *rfc1035label.Labels -} - -// Code returns the option code. -func (op *OptDomainSearch) Code() OptionCode { - return OptionDNSDomainSearchList -} - -// ToBytes returns a serialized stream of bytes for this option. -func (op *OptDomainSearch) ToBytes() []byte { - return op.DomainSearch.ToBytes() +// The domain search option is described by RFC 3397, Section 2. +func OptDomainSearch(labels *rfc1035label.Labels) Option { + return Option{Code: OptionDNSDomainSearchList, Value: labels} } -// String returns a human-readable string. -func (op *OptDomainSearch) String() string { - return fmt.Sprintf("DNS Domain Search List -> %v", op.DomainSearch.Labels) -} - -// ParseOptDomainSearch returns a new OptDomainSearch from a byte stream, or -// error if any. -func ParseOptDomainSearch(data []byte) (*OptDomainSearch, error) { - labels, err := rfc1035label.FromBytes(data) +// GetDomainSearch returns the domain search list in o, if present. +// +// The domain search option is described by RFC 3397, Section 2. +func GetDomainSearch(o Options) *rfc1035label.Labels { + v := o.Get(OptionDNSDomainSearchList) + if v == nil { + return nil + } + labels, err := rfc1035label.FromBytes(v) if err != nil { - return nil, err + return nil } - return &OptDomainSearch{DomainSearch: labels}, nil + return labels } |