Feature: add default-nameserver and outbound interface

This commit is contained in:
Dreamacro
2020-02-15 21:42:46 +08:00
parent f69f635e0b
commit d75cb069d9
28 changed files with 578 additions and 347 deletions

View File

@@ -5,11 +5,11 @@ import (
"errors"
)
type Mode int
type TunnelMode int
var (
// ModeMapping is a mapping for Mode enum
ModeMapping = map[string]Mode{
ModeMapping = map[string]TunnelMode{
Global.String(): Global,
Rule.String(): Rule,
Direct.String(): Direct,
@@ -17,13 +17,13 @@ var (
)
const (
Global Mode = iota
Global TunnelMode = iota
Rule
Direct
)
// UnmarshalJSON unserialize Mode
func (m *Mode) UnmarshalJSON(data []byte) error {
func (m *TunnelMode) UnmarshalJSON(data []byte) error {
var tp string
json.Unmarshal(data, &tp)
mode, exist := ModeMapping[tp]
@@ -35,7 +35,7 @@ func (m *Mode) UnmarshalJSON(data []byte) error {
}
// UnmarshalYAML unserialize Mode with yaml
func (m *Mode) UnmarshalYAML(unmarshal func(interface{}) error) error {
func (m *TunnelMode) UnmarshalYAML(unmarshal func(interface{}) error) error {
var tp string
unmarshal(&tp)
mode, exist := ModeMapping[tp]
@@ -47,11 +47,11 @@ func (m *Mode) UnmarshalYAML(unmarshal func(interface{}) error) error {
}
// MarshalJSON serialize Mode
func (m Mode) MarshalJSON() ([]byte, error) {
func (m TunnelMode) MarshalJSON() ([]byte, error) {
return json.Marshal(m.String())
}
func (m Mode) String() string {
func (m TunnelMode) String() string {
switch m {
case Global:
return "Global"