| 123456789101112131415161718192021222324252627282930313233343536373839 | // +build jsonpackage transportimport (	"encoding/json"	"github.com/v2ray/v2ray-core/common/log"	"github.com/v2ray/v2ray-core/transport/hub/kcpv")func (this *Config) UnmarshalJSON(data []byte) error {	type JsonConfig struct {		ConnectionReuse bool         `json:"connectionReuse"`		EnableKcp       bool         `json:"EnableKCP,omitempty"`		KcpConfig       *kcpv.Config `json:"KcpConfig,omitempty"`	}	jsonConfig := &JsonConfig{		ConnectionReuse: true,		EnableKcp:       false,	}	if err := json.Unmarshal(data, jsonConfig); err != nil {		return err	}	this.ConnectionReuse = jsonConfig.ConnectionReuse	this.enableKcp = jsonConfig.EnableKcp	if jsonConfig.KcpConfig != nil {		this.kcpConfig = jsonConfig.KcpConfig		if jsonConfig.KcpConfig.AdvancedConfigs == nil {			jsonConfig.KcpConfig.AdvancedConfigs = kcpv.DefaultAdvancedConfigs		}	} else {		if jsonConfig.EnableKcp {			log.Error("transport: You have enabled KCP but no configure is given")		}	}	return nil}
 |