safing-portmaster/intel/customlists/config.go
2022-08-01 14:25:01 +02:00

65 lines
1.7 KiB
Go

package customlists
import (
"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 := `Put all domains, Ip addresses, country codes and autonomous system that you want to block in a file in where 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
}