config_json.go 815 B

1234567891011121314151617181920212223242526272829303132
  1. // +build json
  2. package dokodemo
  3. import (
  4. "encoding/json"
  5. v2net "github.com/v2ray/v2ray-core/common/net"
  6. "github.com/v2ray/v2ray-core/proxy/internal/config"
  7. )
  8. func init() {
  9. config.RegisterInboundConfig("dokodemo-door",
  10. func(data []byte) (interface{}, error) {
  11. type DokodemoConfig struct {
  12. Host *v2net.AddressJson `json:"address"`
  13. PortValue v2net.Port `json:"port"`
  14. NetworkList *v2net.NetworkList `json:"network"`
  15. TimeoutValue int `json:"timeout"`
  16. }
  17. rawConfig := new(DokodemoConfig)
  18. if err := json.Unmarshal(data, rawConfig); err != nil {
  19. return nil, err
  20. }
  21. return &Config{
  22. Address: rawConfig.Host.Address,
  23. Port: rawConfig.PortValue,
  24. Network: rawConfig.NetworkList,
  25. Timeout: rawConfig.TimeoutValue,
  26. }, nil
  27. })
  28. }