| 123456789101112131415161718192021222324252627282930313233343536373839 |
- // +build json
- package transport
- import (
- "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
- }
|