| 123456789101112131415161718192021222324252627282930313233343536 | package jsonimport (	"encoding/json"	"github.com/v2ray/v2ray-core/common/log"	proxyconfig "github.com/v2ray/v2ray-core/proxy/common/config"	proxyjson "github.com/v2ray/v2ray-core/proxy/common/config/json")type ConnectionConfig struct {	ProtocolString  string           `json:"protocol"`	SettingsMessage json.RawMessage  `json:"settings"`	Type            proxyconfig.Type `json:"-"`}func (c *ConnectionConfig) Protocol() string {	return c.ProtocolString}func (c *ConnectionConfig) Settings() interface{} {	return loadConnectionConfig(c.SettingsMessage, c.Protocol(), c.Type)}func loadConnectionConfig(message json.RawMessage, protocol string, cType proxyconfig.Type) interface{} {	configObj := proxyjson.CreateConfig(protocol, cType)	if configObj == nil {		panic("Unknown protocol " + protocol)	}	err := json.Unmarshal(message, configObj)	if err != nil {		log.Error("Unable to parse connection config: %v", err)		panic("Failed to parse connection config.")	}	return configObj}
 |