server

package
v0.0.0-...-bad42cb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2025 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Logger *zap.SugaredLogger // TODO move to Server struct

Functions

This section is empty.

Types

type ConfigFormat

type ConfigFormat string
const (
	YamlConfiguration ConfigFormat = "yaml"
	JsonConfiguration ConfigFormat = "json"
	TomlConfiguration ConfigFormat = "toml"
)

type ConfigFormatFlag

type ConfigFormatFlag struct {
	*types.Enum
	// contains filtered or unexported fields
}

type Configuration

type Configuration struct {
	Tsig     TsigConfiguration
	Handlers []HandlerConfiguration `validate:"gt=0,unique=Name,uniquedefault,dive"`
	Zones    []ZoneConfiguration    `validate:"gt=0,unique=Zone,dive,zoneconfig"`
}

func (*Configuration) Unmarshal

func (c *Configuration) Unmarshal(viper *viper.Viper) error

type ConfigurationFile

type ConfigurationFile struct {
	Type        ConfigFormatFlag
	Name        string
	SearchPaths []string
	FullPath    string
}

func NewConfigurationFile

func NewConfigurationFile(defaultFormat ConfigFormat) *ConfigurationFile

type EmbeddedHandlerConfiguration

type EmbeddedHandlerConfiguration struct {
	Default bool
	Name    string             `validate:"required,printascii"`
	Adapter common.AdapterSlug `validate:"required,adapterslug"`
}

type HandlerConfiguration

type HandlerConfiguration struct {
	EmbeddedHandlerConfiguration
	Settings common.IAdapterConfiguration
}

type Server

type Server struct {
	Configuration *Configuration
	// contains filtered or unexported fields
}

FIXME refactor server state

func NewServer

func NewServer(configuration *Configuration) *Server

func (*Server) Handle

func (s *Server) Handle(writer miekgdns.ResponseWriter, received *miekgdns.Msg)

Caution: This function utilizes goto statements. Be mindful when modifying the code flow.

func (*Server) Run

func (s *Server) Run() error

type TsigConfiguration

type TsigConfiguration struct {
	Keys []TsigKeyConfiguration `validate:"unique=Name,uniquedefault,dive"`
}

type TsigKeyConfiguration

type TsigKeyConfiguration struct {
	Default bool
	Name    string `validate:"required,printascii"` // FIXME check RFC (format and length)
	Key     string `validate:"required,base64"`
}

type ZoneConfiguration

type ZoneConfiguration struct {
	Zone     string   `validate:"required,fqdn"`
	Handler  string   `validate:"omitempty,printascii"`
	Keys     []string `validate:"omitempty,dive,printascii"` // FIXME check RFC (format and length)
	Unsecure bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL