safing-portmaster/intel/customlists/config.go
Vladimir Stoilov 62c100714a Custom filter list:
subdomain and cname cheks
Automatic realod when settings is changed
periodicly check for file changes
2022-08-01 14:25:01 +02:00

67 lines
1.8 KiB
Go

package customlists
import (
"strings"
"github.com/safing/portbase/config"
)
var (
// CfgOptionCustomListBlockingKey is the config key for the listen address..
CfgOptionCustomListBlockingKey = "filter/customListBlocking"
cfgOptionCustomListBlockingOrder = 35
cfgOptionCustomListCategoryAnnotation = "Filter Lists"
)
var (
getFilePath func() string
)
func registerConfig() error {
help := strings.ReplaceAll(`Put all domains, Ip addresses, country codes and autonomous system that you want to block in a file in which each entry is on a new line.
Lines that start with a '#' symbol are ignored.
Everything after the first space/tab is ignored.
Example:
"""
# Domains:
example.com
google.com
# IP addresses
1.2.3.4
4.3.2.1
# Countries
AU
BG
# Autonomous Systems
AS123
"""
> * All the records are stored in RAM, careful with large block lists.
> * Hosts files are not supported.`, "\"", "`")
// register a setting for the file path in the ui
err := config.Register(&config.Option{
Name: "Custom Filter List",
Key: CfgOptionCustomListBlockingKey,
Description: "Path to the file that contains a list of Domain, IP addresses, country codes and autonomous systems that you want to block",
Help: help,
OptType: config.OptTypeString,
ExpertiseLevel: config.ExpertiseLevelExpert,
ReleaseLevel: config.ReleaseLevelStable,
DefaultValue: "",
RequiresRestart: false,
Annotations: config.Annotations{
config.DisplayOrderAnnotation: cfgOptionCustomListBlockingOrder,
config.CategoryAnnotation: cfgOptionCustomListCategoryAnnotation,
},
})
if err != nil {
return err
}
getFilePath = config.GetAsString(CfgOptionCustomListBlockingKey, "")
return nil
}