| 12345678910111213141516171819202122232425262728 |
- // +build json
- package router
- import (
- "encoding/json"
- "github.com/v2ray/v2ray-core/common/log"
- )
- func (this *Config) UnmarshalJSON(data []byte) error {
- type JsonConfig struct {
- Strategy string `json:"strategy"`
- Settings json.RawMessage `json:"settings"`
- }
- jsonConfig := new(JsonConfig)
- if err := json.Unmarshal(data, jsonConfig); err != nil {
- return err
- }
- settings, err := CreateRouterConfig(jsonConfig.Strategy, []byte(jsonConfig.Settings))
- if err != nil {
- log.Error("Router: Failed to load router settings: %v", err)
- return err
- }
- this.Strategy = jsonConfig.Strategy
- this.Settings = settings
- return nil
- }
|