| 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
 
- }
 
 
  |