config.go 556 B

123456789101112131415161718192021222324252627
  1. package domainsocket
  2. import (
  3. "v2ray.com/core/common"
  4. "v2ray.com/core/common/net"
  5. "v2ray.com/core/transport/internet"
  6. )
  7. func (c *Config) GetUnixAddr() (*net.UnixAddr, error) {
  8. path := c.Path
  9. if len(path) == 0 {
  10. return nil, newError("empty domain socket path")
  11. }
  12. if c.Abstract && path[0] != '\x00' {
  13. path = "\x00" + path
  14. }
  15. return &net.UnixAddr{
  16. Name: path,
  17. Net: "unix",
  18. }, nil
  19. }
  20. func init() {
  21. common.Must(internet.RegisterProtocolConfigCreator(internet.TransportProtocol_DomainSocket, func() interface{} {
  22. return new(Config)
  23. }))
  24. }