safing-portmaster/network/environment/interface.go
2018-08-13 14:14:27 +02:00

29 lines
603 B
Go

// Copyright Safing ICS Technologies GmbH. Use of this source code is governed by the AGPL license that can be found in the LICENSE file.
package environment
import (
"sync"
"sync/atomic"
)
type EnvironmentInterface struct {
lastNetworkChange int64
lock sync.Mutex
}
func NewInterface() *EnvironmentInterface {
return &EnvironmentInterface{
lastNetworkChange: 0,
}
}
func (env *EnvironmentInterface) NetworkChanged() bool {
env.lock.Lock()
defer env.lock.Unlock()
lnc := atomic.LoadInt64(lastNetworkChange)
if lnc > env.lastNetworkChange {
return true
}
return false
}