Documentation
¶
Index ¶
- func InitializeSubnet(subnet *Subnet, addrs LocalIPAddresses) error
- type BroadcastResponder
- type CallbackSaveLeases
- type GenericLogger
- type Host
- type IPv4
- type Lease
- type Listen
- type LocalIPAddresses
- type Option
- type RLogger
- type Request
- type RequestProcessor
- type Response
- type ResponseGetter
- type Server
- func (s *Server) AddHost(host Host) error
- func (s *Server) AddLease(lease *Lease) error
- func (s *Server) AddListen(listen Listen) error
- func (s *Server) AddSubnet(subnet Subnet) error
- func (s *Server) Close()
- func (s *Server) DeleteHost(host Host) error
- func (s *Server) DeleteLease(lease *Lease) error
- func (s *Server) DeleteListen(name string) error
- func (s *Server) DeleteSubnet(subnet SubnetAddrPrefix) error
- func (s *Server) GetLease(subnet SubnetAddrPrefix, mac string) *Lease
- func (s *Server) GetResponse(req Request) (Response, error)
- type ServerConfig
- type Socket
- type SocketFactory
- type Subnet
- func (s *Subnet) AddHost(h Host)
- func (s *Subnet) AddLease(l *Lease)
- func (s *Subnet) Contains(ip net.IP) bool
- func (s *Subnet) DeleteHost(host Host)
- func (s *Subnet) DeleteLease(lease *Lease) error
- func (s *Subnet) GetLeaseForRequest(req *dhcpv4.DHCPv4) *Lease
- func (s *Subnet) NewLease(mac string, ip net.IP) *Lease
- type SubnetAddrPrefix
- type UDPSocket
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InitializeSubnet ¶
func InitializeSubnet(subnet *Subnet, addrs LocalIPAddresses) error
Types ¶
type BroadcastResponder ¶
type BroadcastResponder struct {
// contains filtered or unexported fields
}
func RawSocketBroadcastResponderFactory ¶
func RawSocketBroadcastResponderFactory(ifName interfaceName, logger RLogger) (*BroadcastResponder, error)
func (*BroadcastResponder) Close ¶
func (r *BroadcastResponder) Close()
type CallbackSaveLeases ¶
type GenericLogger ¶
type GenericLogger struct{}
func (*GenericLogger) Debugf ¶
func (s *GenericLogger) Debugf(format string, args ...interface{})
func (*GenericLogger) Errorf ¶
func (s *GenericLogger) Errorf(err error, format string, args ...interface{})
func (*GenericLogger) Infof ¶
func (s *GenericLogger) Infof(format string, args ...interface{})
func (*GenericLogger) WithName ¶
func (s *GenericLogger) WithName(_ string) RLogger
type Lease ¶
type LocalIPAddresses ¶
func GetLocalAddresses ¶
func GetLocalAddresses() (LocalIPAddresses, error)
GetLocalAddresses return map "eth0": {"10.1.1.1", "10.2.2.2"}
type Request ¶
type RequestProcessor ¶
type RequestProcessor struct {
// contains filtered or unexported fields
}
func NewRequestProcessor ¶
func NewRequestProcessor(listen Listen, socketFactory SocketFactory, callbackSaveLeases CallbackSaveLeases, server *Server, logger RLogger) (*RequestProcessor, error)
func (*RequestProcessor) Close ¶
func (s *RequestProcessor) Close()
func (*RequestProcessor) Serve ¶
func (s *RequestProcessor) Serve() error
type ResponseGetter ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServer ¶
func NewServer(c ServerConfig) (*Server, error)
func (*Server) DeleteHost ¶
func (*Server) DeleteLease ¶
func (*Server) DeleteListen ¶
func (*Server) DeleteSubnet ¶
func (s *Server) DeleteSubnet(subnet SubnetAddrPrefix) error
type ServerConfig ¶
type ServerConfig struct { SocketFactory SocketFactory LocalAddressesGetter func() (LocalIPAddresses, error) Logger RLogger CallbackSaveLeases CallbackSaveLeases Context context.Context }
type Socket ¶
type SocketFactory ¶
type Subnet ¶
type Subnet struct { Subnet SubnetAddrPrefix RangeFrom string RangeTo string Gateway string DNS []string Options []Option LeaseTime int ServerHostName string BootFileName string // contains filtered or unexported fields }
func (*Subnet) DeleteHost ¶
func (*Subnet) DeleteLease ¶
type SubnetAddrPrefix ¶
type SubnetAddrPrefix string
type UDPSocket ¶
type UDPSocket struct {
// contains filtered or unexported fields
}
func (*UDPSocket) NextRequest ¶
func (*UDPSocket) SendBroadcast ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.