config.go 658 B

1234567891011121314151617181920212223242526272829303132333435
  1. package json
  2. import (
  3. "strings"
  4. serialjson "github.com/v2ray/v2ray-core/common/serial/json"
  5. )
  6. type TagList map[string]bool
  7. func NewTagList(tags []string) TagList {
  8. list := TagList(make(map[string]bool))
  9. for _, tag := range tags {
  10. list[strings.TrimSpace(tag)] = true
  11. }
  12. return list
  13. }
  14. func (this *TagList) UnmarshalJSON(data []byte) error {
  15. tags, err := serialjson.UnmarshalStringList(data)
  16. if err != nil {
  17. return err
  18. }
  19. *this = NewTagList(tags)
  20. return nil
  21. }
  22. type CacheConfig struct {
  23. TrustedTags TagList `json:"trustedTags"`
  24. }
  25. func (this *CacheConfig) IsTrustedSource(tag string) bool {
  26. _, found := this.TrustedTags[tag]
  27. return found
  28. }