From 656b633023e1c735d701ac12136a69c6b1e85821 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Sat, 13 Jan 2018 18:48:52 +0100 Subject: [PATCH] fix: fixed packets queue stats --- packets/queue.go | 15 +++++++++------ session/session.go | 13 ++++++++++--- session/targets.go | 2 -- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/packets/queue.go b/packets/queue.go index 96f98a78..438b0c43 100644 --- a/packets/queue.go +++ b/packets/queue.go @@ -14,8 +14,9 @@ import ( ) type Activity struct { - IP net.IP - MAC net.HardwareAddr + IP net.IP + MAC net.HardwareAddr + Source bool } type Queue struct { @@ -94,15 +95,17 @@ func (q *Queue) worker() { if bytes.Compare(q.iface.IP, ip4.SrcIP) != 0 && q.iface.Net.Contains(ip4.SrcIP) { q.Activities <- Activity{ - IP: ip4.SrcIP, - MAC: eth.SrcMAC, + IP: ip4.SrcIP, + MAC: eth.SrcMAC, + Source: true, } } if bytes.Compare(q.iface.IP, ip4.DstIP) != 0 && q.iface.Net.Contains(ip4.DstIP) { q.Activities <- Activity{ - IP: ip4.DstIP, - MAC: eth.SrcMAC, + IP: ip4.DstIP, + MAC: eth.SrcMAC, + Source: false, } } } diff --git a/session/session.go b/session/session.go index 81f42e31..53c271af 100644 --- a/session/session.go +++ b/session/session.go @@ -10,6 +10,7 @@ import ( "sort" "strings" "syscall" + "time" "github.com/chzyer/readline" @@ -231,9 +232,15 @@ func (s *Session) Start() error { // keep reading network events in order to add / update endpoints go func() { for event := range s.Queue.Activities { - addr := event.IP.String() - mac := event.MAC.String() - s.Targets.AddIfNotExist(addr, mac) + if event.Source == true { + addr := event.IP.String() + mac := event.MAC.String() + + existing := s.Targets.AddIfNotExist(addr, mac) + if existing != nil { + existing.LastSeen = time.Now() + } + } if s.Active == false { return diff --git a/session/targets.go b/session/targets.go index 5bf6d06d..5a9579b5 100644 --- a/session/targets.go +++ b/session/targets.go @@ -4,7 +4,6 @@ import ( "fmt" "sort" "sync" - "time" "github.com/evilsocket/bettercap-ng/core" "github.com/evilsocket/bettercap-ng/net" @@ -64,7 +63,6 @@ func (tp *Targets) AddIfNotExist(ip, mac string) *net.Endpoint { } if t, found := tp.Targets[mac]; found { - t.LastSeen = time.Now() return t }