github.com/xraypb/Xray-core@v1.8.1/transport/internet/reality/config.go (about) 1 package reality 2 3 import ( 4 "net" 5 "time" 6 7 "github.com/xraypb/Xray-core/transport/internet" 8 "github.com/xtls/reality" 9 ) 10 11 func (c *Config) GetREALITYConfig() *reality.Config { 12 var dialer net.Dialer 13 config := &reality.Config{ 14 DialContext: dialer.DialContext, 15 16 Show: c.Show, 17 Type: c.Type, 18 Dest: c.Dest, 19 Xver: byte(c.Xver), 20 21 PrivateKey: c.PrivateKey, 22 MinClientVer: c.MinClientVer, 23 MaxClientVer: c.MaxClientVer, 24 MaxTimeDiff: time.Duration(c.MaxTimeDiff) * time.Millisecond, 25 26 NextProtos: nil, // should be nil 27 SessionTicketsDisabled: true, 28 } 29 config.ServerNames = make(map[string]bool) 30 for _, serverName := range c.ServerNames { 31 config.ServerNames[serverName] = true 32 } 33 config.ShortIds = make(map[[8]byte]bool) 34 for _, shortId := range c.ShortIds { 35 config.ShortIds[*(*[8]byte)(shortId)] = true 36 } 37 return config 38 } 39 40 func ConfigFromStreamSettings(settings *internet.MemoryStreamConfig) *Config { 41 if settings == nil { 42 return nil 43 } 44 config, ok := settings.SecuritySettings.(*Config) 45 if !ok { 46 return nil 47 } 48 return config 49 }