Fix: crash when dns not set

This commit is contained in:
Dreamacro 2018-12-05 21:52:31 +08:00
parent f192d591c7
commit f93d6aa294
4 changed files with 19 additions and 10 deletions

View file

@ -100,15 +100,15 @@ external-controller: 127.0.0.1:9090
# secret: ""
dns:
enable: true # set true to enable dns
ipv6: false # default is false
listen: 0.0.0.0:53
enhanced-mode: redir-host
nameserver:
- 114.114.114.114
- tls://dns.rubyfish.cn:853 # dns over tls
fallback: # concurrent request with nameserver, fallback used when GEOIP country isn't CN
- 8.8.8.8
# enable: true # set true to enable dns (default is false)
# ipv6: false # default is false
# listen: 0.0.0.0:53
# enhanced-mode: redir-host
# nameserver:
# - 114.114.114.114
# - tls://dns.rubyfish.cn:853 # dns over tls
# fallback: # concurrent request with nameserver, fallback used when GEOIP country isn't CN
# - 8.8.8.8
Proxy:

View file

@ -95,6 +95,9 @@ func readConfig(path string) (*rawConfig, error) {
Rule: []string{},
Proxy: []map[string]interface{}{},
ProxyGroup: []map[string]interface{}{},
DNS: &rawDNS{
Enable: false,
},
}
err = yaml.Unmarshal([]byte(data), &rawConfig)
return rawConfig, err

View file

@ -250,6 +250,8 @@ func New(config Config) *Resolver {
mmdb, _ = geoip2.Open(C.Path.MMDB())
})
println(config.EnhancedMode)
r := &Resolver{
main: transform(config.Main),
ipv6: config.IPv6,

View file

@ -15,13 +15,15 @@ import (
var (
// EnhancedModeMapping is a mapping for EnhancedMode enum
EnhancedModeMapping = map[string]EnhancedMode{
NORMAL.String(): NORMAL,
FAKEIP.String(): FAKEIP,
MAPPING.String(): MAPPING,
}
)
const (
FAKEIP EnhancedMode = iota
NORMAL EnhancedMode = iota
FAKEIP
MAPPING
)
@ -65,6 +67,8 @@ func (e EnhancedMode) MarshalJSON() ([]byte, error) {
func (e EnhancedMode) String() string {
switch e {
case NORMAL:
return "normal"
case FAKEIP:
return "fakeip"
case MAPPING: