48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package utils
|
|
|
|
//App : Struct for App (dns server) configuration in the config.ini file
|
|
type App struct {
|
|
Port int
|
|
IP string `ini:"IP"`
|
|
Logdir string
|
|
Logfile bool
|
|
}
|
|
|
|
//Database : Struct for SQL Database configuration in the config.ini file
|
|
type Database struct {
|
|
Host string `ini:"Host"`
|
|
Port string
|
|
Username string
|
|
Password string
|
|
Db string `ini:"DB"`
|
|
Type string
|
|
}
|
|
|
|
//Redis : Struct for Redis Database configuration in the config.ini file
|
|
type Redis struct {
|
|
IP string `ini:"IP"`
|
|
Port int
|
|
Password string
|
|
Db int `ini:"DB"`
|
|
TTL int `ini:"TTL"`
|
|
}
|
|
|
|
//Conf : Struct for the whole config.ini file when it will be parsed by go-ini
|
|
type Conf struct {
|
|
AppMode string `ini:"app_mode"`
|
|
App
|
|
Database
|
|
Redis
|
|
}
|
|
|
|
//Record : Struct for a domain record
|
|
//Defined by it's ID, DomainID (parent domain), Fqdn (or name), Content (value of the record), Type (as Qtype/int), TTL (used only for the DNS response and not the Redis TTL)
|
|
type Record struct {
|
|
ID uint `gorm:"primaryKey"`
|
|
DomainID int
|
|
Fqdn string
|
|
Content string
|
|
Type int
|
|
Qtype uint16 `gorm:"-"`
|
|
TTL int
|
|
}
|