1
0
mirror of https://github.com/Luzifer/named-blacklist.git synced 2024-09-16 14:58:29 +00:00
named-blacklist/provider.go
Knut Ahlers b565234570
Make comments sortable for diffing generated files
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2020-02-15 14:22:35 +01:00

38 lines
647 B
Go

package main
import (
"sync"
"github.com/pkg/errors"
)
var (
providerRegistry = map[providerType]provider{}
providerRegistryLock sync.Mutex
)
type entry struct {
Domain string
Comments []string
}
type provider interface {
GetDomainList(providerDefinition) ([]entry, error)
}
func registerProvider(t providerType, p provider) {
providerRegistryLock.Lock()
defer providerRegistryLock.Unlock()
providerRegistry[t] = p
}
func getDomainList(p providerDefinition) ([]entry, error) {
pro, ok := providerRegistry[p.Type]
if !ok {
return nil, errors.Errorf("Unknown provider type %q", p.Type)
}
return pro.GetDomainList(p)
}