mirror of
https://github.com/safing/portmaster
synced 2025-09-02 18:49:14 +00:00
Improve performance when custom lists are not loaded
This commit is contained in:
parent
d9c76cf4dc
commit
8138a2aa4c
2 changed files with 24 additions and 0 deletions
|
@ -619,6 +619,11 @@ matchLoop:
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkCustomFilterList(_ context.Context, conn *network.Connection, p *profile.LayeredProfile, _ packet.Packet) bool {
|
func checkCustomFilterList(_ context.Context, conn *network.Connection, p *profile.LayeredProfile, _ packet.Packet) bool {
|
||||||
|
// Check if any custom list is loaded at all.
|
||||||
|
if !customlists.IsLoaded() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// block if the domain name appears in the custom filter list (check for subdomains if enabled)
|
// block if the domain name appears in the custom filter list (check for subdomains if enabled)
|
||||||
if conn.Entity.Domain != "" {
|
if conn.Entity.Domain != "" {
|
||||||
if ok, match := customlists.LookupDomain(conn.Entity.Domain, p.FilterSubDomains()); ok {
|
if ok, match := customlists.LookupDomain(conn.Entity.Domain, p.FilterSubDomains()); ok {
|
||||||
|
|
|
@ -36,6 +36,25 @@ func initFilterLists() {
|
||||||
domainsFilterList = make(map[string]struct{})
|
domainsFilterList = make(map[string]struct{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsLoaded returns whether a custom filter list is loaded.
|
||||||
|
func IsLoaded() bool {
|
||||||
|
filterListLock.RLock()
|
||||||
|
defer filterListLock.RUnlock()
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case len(domainsFilterList) > 0:
|
||||||
|
return true
|
||||||
|
case len(ipAddressesFilterList) > 0:
|
||||||
|
return true
|
||||||
|
case len(countryCodesFilterList) > 0:
|
||||||
|
return true
|
||||||
|
case len(autonomousSystemsFilterList) > 0:
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func parseFile(filePath string) error {
|
func parseFile(filePath string) error {
|
||||||
// Reset all maps, previous (if any) settings will be lost.
|
// Reset all maps, previous (if any) settings will be lost.
|
||||||
for key := range countryCodesFilterList {
|
for key := range countryCodesFilterList {
|
||||||
|
|
Loading…
Add table
Reference in a new issue