Move AARPMachine constructor
This commit is contained in:
parent
d990977165
commit
7c3e508dd1
2 changed files with 18 additions and 15 deletions
23
aarp.go
23
aarp.go
|
@ -21,6 +21,13 @@ const (
|
|||
aarpRequestTimeout = 10 * time.Second
|
||||
)
|
||||
|
||||
type aarpState int
|
||||
|
||||
const (
|
||||
aarpStateProbing aarpState = iota
|
||||
aarpStateAssigned
|
||||
)
|
||||
|
||||
// AARPMachine maintains both an Address Mapping Table and handles AARP packets
|
||||
// (sending and receiving requests, responses, and probes). This process assumes
|
||||
// a particular network range rather than using the startup range, since this
|
||||
|
@ -37,12 +44,16 @@ type AARPMachine struct {
|
|||
myAddr aarp.AddrPair
|
||||
}
|
||||
|
||||
type aarpState int
|
||||
|
||||
const (
|
||||
aarpStateProbing aarpState = iota
|
||||
aarpStateAssigned
|
||||
)
|
||||
func NewAARPMachine(cfg *config, pcapHandle *pcap.Handle, myHWAddr ethernet.Addr) *AARPMachine {
|
||||
return &AARPMachine{
|
||||
AMT: new(AMT),
|
||||
cfg: cfg,
|
||||
pcapHandle: pcapHandle,
|
||||
myAddr: aarp.AddrPair{
|
||||
Hardware: myHWAddr,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (a *AARPMachine) Run(ctx context.Context, incomingCh <-chan *ethertalk.Packet) error {
|
||||
ticker := time.NewTicker(200 * time.Millisecond) // 200ms is the AARP probe retransmit
|
||||
|
|
10
main.go
10
main.go
|
@ -31,7 +31,6 @@ import (
|
|||
|
||||
"gitea.drjosh.dev/josh/jrouter/atalk"
|
||||
"gitea.drjosh.dev/josh/jrouter/aurp"
|
||||
"github.com/sfiera/multitalk/pkg/aarp"
|
||||
"github.com/sfiera/multitalk/pkg/ddp"
|
||||
"github.com/sfiera/multitalk/pkg/ethernet"
|
||||
"github.com/sfiera/multitalk/pkg/ethertalk"
|
||||
|
@ -151,14 +150,7 @@ func main() {
|
|||
}
|
||||
defer pcapHandle.Close()
|
||||
|
||||
aarpMachine := &AARPMachine{
|
||||
AMT: new(AMT),
|
||||
cfg: cfg,
|
||||
pcapHandle: pcapHandle,
|
||||
myAddr: aarp.AddrPair{
|
||||
Hardware: myHWAddr,
|
||||
},
|
||||
}
|
||||
aarpMachine := NewAARPMachine(cfg, pcapHandle, myHWAddr)
|
||||
aarpCh := make(chan *ethertalk.Packet, 1024)
|
||||
go aarpMachine.Run(ctx, aarpCh)
|
||||
|
||||
|
|
Loading…
Reference in a new issue