new: new hid.ttl parameter (fixes #560)

This commit is contained in:
evilsocket 2019-09-08 16:19:13 +02:00
commit f14470c8f6
No known key found for this signature in database
GPG key ID: 82E42E7F3B34C97E
2 changed files with 12 additions and 3 deletions

View file

@ -17,6 +17,7 @@ type HIDRecon struct {
dongle *nrf24.Dongle
waitGroup *sync.WaitGroup
channel int
devTTL int
hopPeriod time.Duration
pingPeriod time.Duration
sniffPeriod time.Duration
@ -45,6 +46,7 @@ func NewHIDRecon(s *session.Session) *HIDRecon {
waitGroup: &sync.WaitGroup{},
sniffLock: &sync.Mutex{},
writeLock: &sync.Mutex{},
devTTL: 1200,
hopPeriod: 100 * time.Millisecond,
pingPeriod: 100 * time.Millisecond,
sniffPeriod: 500 * time.Millisecond,
@ -117,6 +119,10 @@ func NewHIDRecon(s *session.Session) *HIDRecon {
mod.AddHandler(inject)
mod.AddParam(session.NewIntParameter("hid.ttl",
fmt.Sprintf("%d", mod.devTTL),
"Seconds of inactivity to consider a device as not in range."))
mod.AddParam(session.NewBoolParameter("hid.lna",
"true",
"If true, enable the LNA power amplifier for CrazyRadio devices."))
@ -170,6 +176,10 @@ func (mod *HIDRecon) Configure() error {
return err
}
if err, mod.devTTL = mod.IntParam("hid.ttl"); err != nil {
return err
}
if err, n = mod.IntParam("hid.hop.period"); err != nil {
return err
} else {

View file

@ -68,13 +68,12 @@ func (mod *HIDRecon) onDeviceDetected(buf []byte) {
}
}
var maxDeviceTTL = 20 * time.Minute
func (mod *HIDRecon) devPruner() {
mod.waitGroup.Add(1)
defer mod.waitGroup.Done()
mod.Debug("devices pruner started.")
maxDeviceTTL := time.Duration(mod.devTTL) * time.Second
mod.Debug("devices pruner started with ttl %v", maxDeviceTTL)
for mod.Running() {
for _, dev := range mod.Session.HID.Devices() {
sinceLastSeen := time.Since(dev.LastSeen)