Documentation
¶
Index ¶
- Constants
- Variables
- func CreateExecutor(client *DhcpClient) bender.RequestExecutor
- func NewPacket(dhcpOptions ...layers.DHCPOption) *layers.DHCPv4
- func NewRequestFromOffer(packet *layers.DHCPv4) *layers.DHCPv4
- func ParsePacket(data []byte, decoder gopacket.Decoder) *layers.DHCPv4
- func WithNetboot(d *layers.DHCPv4)
- type Callback
- type DhcpClient
- func (dc *DhcpClient) Close() error
- func (dc *DhcpClient) GetRequestAndResponse() (request int, response int)
- func (dc *DhcpClient) Open() error
- func (dc *DhcpClient) Send(packet *layers.DHCPv4, modifiers ...Modifier) *PacketResponse
- func (dc *DhcpClient) Start(size int, ifRequest bool, ifLog bool)
- func (dc *DhcpClient) Stop()
- type Dialer
- type IPacketEventDispatcher
- type Lease
- type Listener
- type Modifier
- func WithBroadcast(broadcast bool) Modifier
- func WithClientIP(ip net.IP) Modifier
- func WithGeneric(code layers.DHCPOpt, value []byte) Modifier
- func WithHWType(hwt layers.LinkType) Modifier
- func WithHostName(hostname string) Modifier
- func WithHwAddr(hwaddr net.HardwareAddr) Modifier
- func WithLeaseTime(leaseTime uint32) Modifier
- func WithMessageType(m layers.DHCPMsgType) Modifier
- func WithNetmask(mask net.IPMask) Modifier
- func WithOption(opt layers.DHCPOpt, data []byte) Modifier
- func WithRelay(ip net.IP) Modifier
- func WithReply(request *layers.DHCPv4) Modifier
- func WithRequestedOptions(optionCodes ...layers.DHCPOpt) Modifier
- func WithServerIP(ip net.IP) Modifier
- func WithTransactionID(xid uint32) Modifier
- func WithYourIP(ip net.IP) Modifier
- type PacketEvent
- type PacketEventDispatcher
- func (pd *PacketEventDispatcher) AddEventListener(eventType string, handler PacketEventHandler)
- func (pd *PacketEventDispatcher) DispatchEvent(event PacketEvent)
- func (pd *PacketEventDispatcher) HasEventListener(eventType string) bool
- func (pd *PacketEventDispatcher) RemoveEventListener(eventType string)
- type PacketEventHandler
- type PacketEventListener
- type PacketResponse
- type TransPort
Constants ¶
const (
MAXUDPReceivedPacketSize = 8192
)
Variables ¶
var ( DefaultReadTimeout = 2 * time.Second DefaultWriteTimeout = 2 * time.Second DefaultParamsRequestList = []layers.DHCPOpt{ layers.DHCPOptSubnetMask, layers.DHCPOptRouter, layers.DHCPOptTimeServer, layers.DHCPOptDNS, layers.DHCPOptDomainName, layers.DHCPOptInterfaceMTU, layers.DHCPOptNTPServers, } )
Functions ¶
func CreateExecutor ¶
func CreateExecutor(client *DhcpClient) bender.RequestExecutor
CreateExecutor creates a new DHCPv4 RequestExecutor.
func WithNetboot ¶
WithNetboot adds bootfile URL and bootfile param options to a layers.DHCPv4 packet.
Types ¶
type DhcpClient ¶
type DhcpClient struct {
//ClientMac net.HardwareAddr
Iface *net.Interface
BufferSize int
// contains filtered or unexported fields
}
DhcpClient
func (*DhcpClient) Close ¶
func (dc *DhcpClient) Close() error
func (*DhcpClient) GetRequestAndResponse ¶
func (dc *DhcpClient) GetRequestAndResponse() (request int, response int)
func (*DhcpClient) Open ¶
func (dc *DhcpClient) Open() error
func (*DhcpClient) Send ¶
func (dc *DhcpClient) Send(packet *layers.DHCPv4, modifiers ...Modifier) *PacketResponse
func (*DhcpClient) Stop ¶
func (dc *DhcpClient) Stop()
type IPacketEventDispatcher ¶
type IPacketEventDispatcher interface {
AddEventListener(eventType string, handler PacketEventHandler)
RemoveEventListener(eventType string)
HasEventListener(eventType string) bool
DispatchEvent(event PacketEvent)
}
type Lease ¶
type Listener ¶
type Listener func(*net.Interface) (net.PacketConn, error)
func UDPListener ¶
func UDPListener() Listener
type Modifier ¶
func WithBroadcast ¶
WithBroadcast sets the packet to be broadcast or unicast
func WithClientIP ¶
WithClientIP sets the Client IP for a layers.DHCPv4 packet.
func WithHWType ¶
WithHWType sets the Hardware Type for a layers.DHCPv4 packet.
func WithHostName ¶
func WithHwAddr ¶
func WithHwAddr(hwaddr net.HardwareAddr) Modifier
WithHwAddr sets the hardware address for a packet
func WithLeaseTime ¶
WithLeaseTime adds or updates an OptIPAddressLeaseTime
func WithMessageType ¶
func WithMessageType(m layers.DHCPMsgType) Modifier
WithMessageType adds the layers.DHCPv4 message type m to a packet.
func WithNetmask ¶
WithNetmask adds or updates an OptSubnetMask
func WithOption ¶
WithOption appends a layers.DHCPv4 option provided by the user
func WithRelay ¶
WithRelay adds parameters required for layers.DHCPv4 to be relayed by the relay server with given ip
func WithReply ¶
WithReply fills in opcode, hwtype, xid, clienthwaddr, flags, and gateway ip addr from the given packet.
func WithRequestedOptions ¶
WithRequestedOptions adds requested options to the packet.
func WithServerIP ¶
WithServerIP sets the Server IP for a layers.DHCPv4 packet.
func WithTransactionID ¶
WithTransactionID sets the Transaction ID for a layers.DHCPv4 packet.
func WithYourIP ¶
WithYourIP sets the Your IP for a layers.DHCPv4 packet.
type PacketEvent ¶
type PacketEvent struct {
Target IPacketEventDispatcher
Type string
// contains filtered or unexported fields
}
func NewEvent ¶
func NewEvent(eventType string, object interface{}) PacketEvent
type PacketEventDispatcher ¶
type PacketEventDispatcher struct {
// contains filtered or unexported fields
}
func (*PacketEventDispatcher) AddEventListener ¶
func (pd *PacketEventDispatcher) AddEventListener(eventType string, handler PacketEventHandler)
func (*PacketEventDispatcher) DispatchEvent ¶
func (pd *PacketEventDispatcher) DispatchEvent(event PacketEvent)
func (*PacketEventDispatcher) HasEventListener ¶
func (pd *PacketEventDispatcher) HasEventListener(eventType string) bool
func (*PacketEventDispatcher) RemoveEventListener ¶
func (pd *PacketEventDispatcher) RemoveEventListener(eventType string)
type PacketEventHandler ¶
type PacketEventHandler func(e PacketEvent)
type PacketEventListener ¶
type PacketEventListener struct {
Type string
Handler PacketEventHandler
}
type PacketResponse ¶
type PacketResponse struct {
// contains filtered or unexported fields
}
func NewPacketResponse ¶
func NewPacketResponse() *PacketResponse
func (*PacketResponse) AddPacket ¶
func (pr *PacketResponse) AddPacket(packet *layers.DHCPv4)
func (*PacketResponse) Call ¶
func (pr *PacketResponse) Call(event PacketEvent)