diff --git a/proxy/http/config.go b/proxy/http/config.go index 965ce395b..3a07dd367 100644 --- a/proxy/http/config.go +++ b/proxy/http/config.go @@ -4,8 +4,15 @@ import ( v2net "github.com/v2ray/v2ray-core/common/net" ) +type TlsConfig struct { + Enabled bool + CertFile string + KeyFile string +} + type Config struct { - OwnHosts []v2net.Address + OwnHosts []v2net.Address + TlsConfig *TlsConfig } func (this *Config) IsOwnHost(host v2net.Address) bool { diff --git a/proxy/http/config_json.go b/proxy/http/config_json.go index 565fd720a..9fbd51789 100644 --- a/proxy/http/config_json.go +++ b/proxy/http/config_json.go @@ -9,9 +9,27 @@ import ( "github.com/v2ray/v2ray-core/proxy/internal/config" ) +func (this *TlsConfig) UnmarshalJSON(data []byte) error { + type JsonConfig struct { + Enabled bool + CertFile string + KeyFile string + } + jsonConfig := new(JsonConfig) + if err := json.Unmarshal(data, jsonConfig); err != nil { + return err + } + + this.Enabled = jsonConfig.Enabled + this.CertFile = jsonConfig.CertFile + this.KeyFile = jsonConfig.KeyFile + return nil +} + func (this *Config) UnmarshalJSON(data []byte) error { type JsonConfig struct { Hosts []v2net.AddressJson `json:"ownHosts"` + Tls *TlsConfig `json:"tls"` } jsonConfig := new(JsonConfig) if err := json.Unmarshal(data, jsonConfig); err != nil { @@ -27,6 +45,8 @@ func (this *Config) UnmarshalJSON(data []byte) error { this.OwnHosts = append(this.OwnHosts, v2rayHost) } + this.TlsConfig = jsonConfig.Tls + return nil }