refactor: don't pass around router.Ourself

This commit is contained in:
Matthias Radestock committed 2014-08-19 15:27:57 +01:00
1 parent 31166023b2
commit b4635bc7ff
1 file changed
+8 -9
+8 -9
View File
@@ -62,7 +62,6 @@ func (router *Router) Sniff() {
handle := router.createPCap(true, 65535, router.BufSz)
defer handle.Close()
ourself := router.Ourself
dec := NewEthernetDecoder()
localAddrs, err := router.Iface.Addrs()
@@ -70,18 +69,18 @@ func (router *Router) Sniff() {
checkFrameTooBig := dec.CheckFrameTooBigFunc(router.Iface.HardwareAddr, localAddrs, handle)
mac := router.Iface.HardwareAddr
if router.Macs.Enter(mac, ourself) {
if router.Macs.Enter(mac, router.Ourself) {
log.Println("Discovered our MAC", mac)
}
for {
pkt, _, err := handle.ReadPacketData()
checkFatal(err)
router.LogFrame("Sniffed", pkt, nil)
checkWarn(router.handleCapturedPacket(pkt, dec, ourself, checkFrameTooBig))
checkWarn(router.handleCapturedPacket(pkt, dec, checkFrameTooBig))
}
}
func (router *Router) handleCapturedPacket(frameData []byte, dec *EthernetDecoder, ourself *Peer, checkFrameTooBig func(error) error) error {
func (router *Router) handleCapturedPacket(frameData []byte, dec *EthernetDecoder, checkFrameTooBig func(error) error) error {
dec.DecodeLayers(frameData)
decodedLen := len(dec.decoded)
if decodedLen == 0 {
@@ -92,10 +91,10 @@ func (router *Router) handleCapturedPacket(frameData []byte, dec *EthernetDecode
// We need to filter out frames we injected ourselves. For such
// frames, the srcMAC will have been recorded as associated with a
// different peer.
if found && srcPeer != ourself {
if found && srcPeer != router.Ourself {
return nil
}
if router.Macs.Enter(srcMac, ourself) {
if router.Macs.Enter(srcMac, router.Ourself) {
log.Println("Discovered local MAC", srcMac)
}
if dec.DropFrame() {
@@ -103,7 +102,7 @@ func (router *Router) handleCapturedPacket(frameData []byte, dec *EthernetDecode
}
dstMac := dec.eth.DstMAC
dstPeer, found := router.Macs.Lookup(dstMac)
if found && dstPeer == ourself {
if found && dstPeer == router.Ourself {
return nil
}
df := decodedLen == 2 && (dec.ip.Flags&layers.IPv4DontFragment != 0)
@@ -113,9 +112,9 @@ func (router *Router) handleCapturedPacket(frameData []byte, dec *EthernetDecode
router.LogFrame("Forwarding", frameData, &dec.eth)
}
if !found || dec.BroadcastFrame() {
return checkFrameTooBig(ourself.Broadcast(df, frameData, dec))
return checkFrameTooBig(router.Ourself.Broadcast(df, frameData, dec))
} else {
return checkFrameTooBig(ourself.Forward(dstPeer, df, frameData, dec))
return checkFrameTooBig(router.Ourself.Forward(dstPeer, df, frameData, dec))
}
}