v2ray-core/common/net/json/network.go

37 lines
756 B
Go
Raw Normal View History

2015-10-30 14:56:46 +00:00
package json
import (
"strings"
v2net "github.com/v2ray/v2ray-core/common/net"
2015-12-10 21:08:36 +00:00
serialjson "github.com/v2ray/v2ray-core/common/serial/json"
2015-10-30 14:56:46 +00:00
)
type NetworkList []string
2015-11-01 22:01:15 +00:00
func NewNetworkList(networks []string) NetworkList {
list := NetworkList(make([]string, len(networks)))
for idx, network := range networks {
list[idx] = strings.ToLower(strings.TrimSpace(network))
}
return list
}
2015-10-30 14:56:46 +00:00
func (this *NetworkList) UnmarshalJSON(data []byte) error {
2015-12-10 21:08:36 +00:00
strlist, err := serialjson.UnmarshalStringList(data)
if err != nil {
return err
2015-10-30 14:56:46 +00:00
}
2015-12-10 21:08:36 +00:00
*this = NewNetworkList(strlist)
return nil
2015-10-30 14:56:46 +00:00
}
func (this *NetworkList) HasNetwork(network v2net.Network) bool {
for _, value := range *this {
if value == string(network) {
return true
}
}
return false
}