Files
elmprodvpn/selective-vpn-api/app/traffic_appmarks_runtime_state.go

36 lines
886 B
Go

package app
import (
trafficappmarkspkg "selective-vpn-api/app/trafficappmarks"
"time"
)
func pruneExpiredAppMarks() error {
appMarksMu.Lock()
defer appMarksMu.Unlock()
st := loadAppMarksState()
if pruneExpiredAppMarksLocked(&st, time.Now().UTC()) {
return saveAppMarksState(st)
}
return nil
}
func pruneExpiredAppMarksLocked(st *appMarksState, now time.Time) (changed bool) {
return trafficappmarkspkg.PruneExpired(st, now, func(target string, id uint64) {
_ = nftDeleteAppMarkRule(target, id)
})
}
func loadAppMarksState() appMarksState {
return trafficappmarkspkg.LoadState(trafficAppMarksPath, canonicalizeAppKey)
}
func dedupeAppMarkItems(in []appMarkItem) ([]appMarkItem, bool) {
return trafficappmarkspkg.DedupeItems(in, canonicalizeAppKey)
}
func saveAppMarksState(st appMarksState) error {
return trafficappmarkspkg.SaveState(trafficAppMarksPath, st)
}