2018-01-13 13:41:49 +00:00
|
|
|
package respond
|
|
|
|
|
|
|
|
import "github.com/FreifunkBremen/yanic/lib/duration"
|
|
|
|
|
|
|
|
type Config struct {
|
2018-01-17 19:20:35 +00:00
|
|
|
Enable bool `toml:"enable"`
|
|
|
|
Synchronize duration.Duration `toml:"synchronize"`
|
2017-12-05 22:17:49 +00:00
|
|
|
Interfaces []InterfaceConfig `toml:"interfaces"`
|
2018-01-17 19:20:35 +00:00
|
|
|
Sites map[string]SiteConfig `toml:"sites"`
|
|
|
|
CollectInterval duration.Duration `toml:"collect_interval"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Config) SitesDomains() (result map[string][]string) {
|
|
|
|
result = make(map[string][]string)
|
|
|
|
for site, siteConfig := range c.Sites {
|
|
|
|
result[site] = siteConfig.Domains
|
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
type SiteConfig struct {
|
|
|
|
Domains []string `toml:"domains"`
|
2018-01-13 13:41:49 +00:00
|
|
|
}
|
2017-12-05 22:17:49 +00:00
|
|
|
|
|
|
|
type InterfaceConfig struct {
|
|
|
|
InterfaceName string `toml:"ifname"`
|
|
|
|
IPAddress string `toml:"ip_address"`
|
|
|
|
MulticastAddress string `toml:"multicast_address"`
|
|
|
|
Port int `toml:"port"`
|
|
|
|
}
|