| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | // +build jsonpackage transportimport (	"encoding/json"	"v2ray.com/core/common/loader"	v2net "v2ray.com/core/common/net"	"v2ray.com/core/transport/internet"	"v2ray.com/core/transport/internet/kcp"	"v2ray.com/core/transport/internet/tcp"	"v2ray.com/core/transport/internet/ws")func (this *Config) UnmarshalJSON(data []byte) error {	type JsonConfig struct {		TCPConfig *tcp.Config `json:"tcpSettings"`		KCPConfig *kcp.Config `json:"kcpSettings"`		WSConfig  *ws.Config  `json:"wsSettings"`	}	jsonConfig := &JsonConfig{}	if err := json.Unmarshal(data, jsonConfig); err != nil {		return err	}	if jsonConfig.TCPConfig != nil {		this.NetworkSettings = append(this.NetworkSettings, &internet.NetworkSettings{			Network:  v2net.Network_TCP,			Settings: loader.NewTypedSettings(jsonConfig.TCPConfig),		})	}	if jsonConfig.KCPConfig != nil {		this.NetworkSettings = append(this.NetworkSettings, &internet.NetworkSettings{			Network:  v2net.Network_KCP,			Settings: loader.NewTypedSettings(jsonConfig.KCPConfig),		})	}	if jsonConfig.WSConfig != nil {		this.NetworkSettings = append(this.NetworkSettings, &internet.NetworkSettings{			Network:  v2net.Network_WebSocket,			Settings: loader.NewTypedSettings(jsonConfig.WSConfig),		})	}	return nil}
 |