func inputTransformer()

in cmd/dhcpv4/dhcpv4.go [46:76]


func inputTransformer(optionCodes []dhcpv4.OptionCode) input.Transformer {
	defaultCodes := []dhcpv4.OptionCode{
		dhcpv4.OptionSubnetMask,
		dhcpv4.OptionRouter,
		dhcpv4.OptionDomainName,
		dhcpv4.OptionDomainNameServer,
	}

	return func(input string) (interface{}, error) {
		mac, err := net.ParseMAC(input)
		if err != nil {
			//nolint:wrapcheck
			return nil, err
		}

		discover, err := dhcpv4.New()
		if err != nil {
			//nolint:wrapcheck
			return nil, err
		}

		discover.HWType = iana.HWTypeEthernet
		discover.ClientHWAddr = mac
		discover.UpdateOption(dhcpv4.OptMessageType(dhcpv4.MessageTypeDiscover))

		optionCodes = append(optionCodes, defaultCodes...)
		dhcpv4.WithRequestedOptions(optionCodes...)(discover)

		return discover, nil
	}
}