Reevaluate and update firewall core logic
This commit is contained in:
@@ -93,7 +93,7 @@ func CleanProcessStorage(thresholdDuration time.Duration) {
|
||||
threshold := time.Now().Add(-thresholdDuration).Unix()
|
||||
for _, p := range processes {
|
||||
p.Lock()
|
||||
if p.FirstConnectionEstablished < threshold && p.ConnectionCount == 0 {
|
||||
if p.FirstCommEstablished < threshold && p.CommCount == 0 {
|
||||
go p.Delete()
|
||||
}
|
||||
p.Unlock()
|
||||
|
||||
@@ -42,9 +42,9 @@ type Process struct {
|
||||
Icon string
|
||||
// Icon is a path to the icon and is either prefixed "f:" for filepath, "d:" for database cache path or "c:"/"a:" for a the icon key to fetch it from a company / authoritative node and cache it in its own cache.
|
||||
|
||||
FirstConnectionEstablished int64
|
||||
LastConnectionEstablished int64
|
||||
ConnectionCount uint
|
||||
FirstCommEstablished int64
|
||||
LastCommEstablished int64
|
||||
CommCount uint
|
||||
}
|
||||
|
||||
// ProfileSet returns the assigned profile set.
|
||||
@@ -66,25 +66,25 @@ func (p *Process) String() string {
|
||||
return fmt.Sprintf("%s:%s:%d", p.UserName, p.Path, p.Pid)
|
||||
}
|
||||
|
||||
// AddConnection increases the connection counter and the last connection timestamp.
|
||||
func (p *Process) AddConnection() {
|
||||
// AddCommunication increases the connection counter and the last connection timestamp.
|
||||
func (p *Process) AddCommunication() {
|
||||
p.Lock()
|
||||
defer p.Unlock()
|
||||
|
||||
p.ConnectionCount++
|
||||
p.LastConnectionEstablished = time.Now().Unix()
|
||||
if p.FirstConnectionEstablished == 0 {
|
||||
p.FirstConnectionEstablished = p.LastConnectionEstablished
|
||||
p.CommCount++
|
||||
p.LastCommEstablished = time.Now().Unix()
|
||||
if p.FirstCommEstablished == 0 {
|
||||
p.FirstCommEstablished = p.LastCommEstablished
|
||||
}
|
||||
}
|
||||
|
||||
// RemoveConnection lowers the connection counter by one.
|
||||
func (p *Process) RemoveConnection() {
|
||||
// RemoveCommunication lowers the connection counter by one.
|
||||
func (p *Process) RemoveCommunication() {
|
||||
p.Lock()
|
||||
defer p.Unlock()
|
||||
|
||||
if p.ConnectionCount > 0 {
|
||||
p.ConnectionCount--
|
||||
if p.CommCount > 0 {
|
||||
p.CommCount--
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user