summaryrefslogtreecommitdiffhomepage
path: root/dhcpv4/option_domain_search.go
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpv4/option_domain_search.go')
-rw-r--r--dhcpv4/option_domain_search.go44
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
}