| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | package confimport (	"encoding/json"	"v2ray.com/core/common/errors"	"v2ray.com/core/common/serial"	"v2ray.com/core/proxy/blackhole")type NoneResponse struct{}func (*NoneResponse) Build() (*serial.TypedMessage, error) {	return serial.ToTypedMessage(new(blackhole.NoneResponse)), nil}type HttpResponse struct{}func (*HttpResponse) Build() (*serial.TypedMessage, error) {	return serial.ToTypedMessage(new(blackhole.HTTPResponse)), nil}type BlackholeConfig struct {	Response json.RawMessage `json:"response"`}func (v *BlackholeConfig) Build() (*serial.TypedMessage, error) {	config := new(blackhole.Config)	if v.Response != nil {		response, _, err := configLoader.Load(v.Response)		if err != nil {			return nil, errors.New("Config: Failed to parse Blackhole response config.").Base(err)		}		responseSettings, err := response.(Buildable).Build()		if err != nil {			return nil, err		}		config.Response = responseSettings	}	return serial.ToTypedMessage(config), nil}var (	configLoader = NewJSONConfigLoader(		ConfigCreatorCache{			"none": func() interface{} { return new(NoneResponse) },			"http": func() interface{} { return new(HttpResponse) },		},		"type",		""))
 |