mirror of
https://github.com/safing/portmaster
synced 2025-09-02 10:39:22 +00:00
65 lines
1.7 KiB
Go
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
|
|
}
|