dns config

This commit is contained in:
v2ray
2015-12-10 22:08:36 +01:00
parent 95c8910f87
commit 5b3e84ede6
6 changed files with 67 additions and 20 deletions
+6 -16
View File
@@ -1,11 +1,10 @@
package json
import (
"encoding/json"
"errors"
"strings"
v2net "github.com/v2ray/v2ray-core/common/net"
serialjson "github.com/v2ray/v2ray-core/common/serial/json"
)
type NetworkList []string
@@ -19,21 +18,12 @@ func NewNetworkList(networks []string) NetworkList {
}
func (this *NetworkList) UnmarshalJSON(data []byte) error {
var strList []string
err := json.Unmarshal(data, &strList)
if err == nil {
*this = NewNetworkList(strList)
return nil
strlist, err := serialjson.UnmarshalStringList(data)
if err != nil {
return err
}
var str string
err = json.Unmarshal(data, &str)
if err == nil {
strList := strings.Split(str, ",")
*this = NewNetworkList(strList)
return nil
}
return errors.New("Unknown format of network list: " + string(data))
*this = NewNetworkList(strlist)
return nil
}
func (this *NetworkList) HasNetwork(network v2net.Network) bool {
+21
View File
@@ -0,0 +1,21 @@
package json
import (
"encoding/json"
"errors"
"strings"
)
func UnmarshalStringList(data []byte) ([]string, error) {
var strarray []string
if err := json.Unmarshal(data, &strarray); err == nil {
return strarray, nil
}
var rawstr string
if err := json.Unmarshal(data, &rawstr); err == nil {
strlist := strings.Split(rawstr, ",")
return strlist, nil
}
return nil, errors.New("Unknown format of a string list: " + string(data))
}