watchyourlan/internal/scan/start.go
2023-05-05 12:48:36 +07:00

36 lines
764 B
Go

package scan
import (
"time"
"github.com/aceberg/WatchYourLAN/internal/db"
"github.com/aceberg/WatchYourLAN/internal/models"
)
// Start - start arp-scan goroutine
func Start(appConfig models.Conf, quit chan bool) {
var foundHosts []models.Host
var dbHosts []models.Host
var lastDate time.Time
for {
select {
case <-quit:
return
default:
nowDate := time.Now()
plusDate := lastDate.Add(time.Duration(appConfig.Timeout) * time.Second)
if nowDate.After(plusDate) {
foundHosts = arpScan(appConfig.Iface, appConfig.LogLevel)
dbHosts = db.Select(appConfig.DbPath)
db.SetNow(appConfig.DbPath)
hostsCompare(appConfig, foundHosts, dbHosts)
lastDate = time.Now()
}
time.Sleep(time.Duration(1) * time.Second)
}
}
}