mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-06-26 13:14:14 +00:00
New config file style
This commit is contained in:
parent
d447c4d52f
commit
7a7632397d
6 changed files with 151 additions and 114 deletions
4
go.mod
4
go.mod
|
@ -20,7 +20,7 @@ require (
|
|||
github.com/stretchr/testify v1.10.0
|
||||
github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e
|
||||
github.com/vishvananda/netlink v1.3.1
|
||||
github.com/xtls/reality v0.0.0-20250607113038-1b088adc09e0
|
||||
github.com/xtls/reality v0.0.0-20250608065753-4b636d90bde2
|
||||
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba
|
||||
golang.org/x/crypto v0.39.0
|
||||
golang.org/x/net v0.41.0
|
||||
|
@ -35,7 +35,7 @@ require (
|
|||
)
|
||||
|
||||
// [TODO] Temp: use forked reality until upstream merges #12
|
||||
replace github.com/xtls/reality => github.com/meo597/reality v0.0.0-20250607113038-1b088adc09e0
|
||||
replace github.com/xtls/reality => github.com/meo597/reality v0.0.0-20250608065753-4b636d90bde2
|
||||
|
||||
require (
|
||||
github.com/andybalholm/brotli v1.1.0 // indirect
|
||||
|
|
4
go.sum
4
go.sum
|
@ -40,8 +40,8 @@ github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0N
|
|||
github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
|
||||
github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM=
|
||||
github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
|
||||
github.com/meo597/reality v0.0.0-20250607113038-1b088adc09e0 h1:cUvj5jVQrE8sJ9qJy8vNcmawdTmF8CMtCVnn7KqArs0=
|
||||
github.com/meo597/reality v0.0.0-20250607113038-1b088adc09e0/go.mod h1:yD47RN65bDLZgyHWMfFDiqlzrq4usDMt/Xzsk6tMbhw=
|
||||
github.com/meo597/reality v0.0.0-20250608065753-4b636d90bde2 h1:51SdYH7bCdJ/Nln6UG6aaYEvFw6mr9uCbqhR6Oo/MvQ=
|
||||
github.com/meo597/reality v0.0.0-20250608065753-4b636d90bde2/go.mod h1:yD47RN65bDLZgyHWMfFDiqlzrq4usDMt/Xzsk6tMbhw=
|
||||
github.com/miekg/dns v1.1.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE=
|
||||
github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE=
|
||||
github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
|
||||
|
|
|
@ -500,12 +500,12 @@ type REALITYConfig struct {
|
|||
MaxTimeDiff uint64 `json:"maxTimeDiff"`
|
||||
ShortIds []string `json:"shortIds"`
|
||||
|
||||
LimitUploadRate float64 `json:"limitUploadRate"`
|
||||
LimitUploadBurst int64 `json:"limitUploadBurst"`
|
||||
LimitUploadAfter int64 `json:"limitUploadAfter"`
|
||||
LimitDownloadRate float64 `json:"limitDownloadRate"`
|
||||
LimitDownloadBurst int64 `json:"limitDownloadBurst"`
|
||||
LimitDownloadAfter int64 `json:"limitDownloadAfter"`
|
||||
LimitFbUploadRate float64 `json:"limitFbUploadRate"`
|
||||
LimitFbUploadBurst int64 `json:"limitFbUploadBurst"`
|
||||
LimitFbUploadAfter int64 `json:"limitFbUploadAfter"`
|
||||
LimitFbDownloadRate float64 `json:"limitFbDownloadRate"`
|
||||
LimitFbDownloadBurst int64 `json:"limitFbDownloadBurst"`
|
||||
LimitFbDownloadAfter int64 `json:"limitFbDownloadAfter"`
|
||||
|
||||
Fingerprint string `json:"fingerprint"`
|
||||
ServerName string `json:"serverName"`
|
||||
|
@ -608,12 +608,12 @@ func (c *REALITYConfig) Build() (proto.Message, error) {
|
|||
config.ServerNames = c.ServerNames
|
||||
config.MaxTimeDiff = c.MaxTimeDiff
|
||||
|
||||
config.LimitUploadRate = c.LimitUploadRate
|
||||
config.LimitUploadBurst = c.LimitUploadBurst
|
||||
config.LimitUploadAfter = c.LimitUploadAfter
|
||||
config.LimitDownloadRate = c.LimitDownloadRate
|
||||
config.LimitDownloadBurst = c.LimitDownloadBurst
|
||||
config.LimitDownloadAfter = c.LimitDownloadAfter
|
||||
config.LimitFallbackUpload.BytesPerSec = c.LimitFbUploadRate
|
||||
config.LimitFallbackUpload.BurstBytesPerSec = c.LimitFbUploadBurst
|
||||
config.LimitFallbackUpload.AfterBytes = c.LimitFbUploadAfter
|
||||
config.LimitFallbackDownload.BytesPerSec = c.LimitFbDownloadRate
|
||||
config.LimitFallbackDownload.BurstBytesPerSec = c.LimitFbDownloadBurst
|
||||
config.LimitFallbackDownload.AfterBytes = c.LimitFbDownloadAfter
|
||||
} else {
|
||||
config.Fingerprint = strings.ToLower(c.Fingerprint)
|
||||
if config.Fingerprint == "unsafe" || config.Fingerprint == "hellogolang" {
|
||||
|
|
|
@ -32,12 +32,12 @@ func (c *Config) GetREALITYConfig() *reality.Config {
|
|||
|
||||
KeyLogWriter: KeyLogWriterFromConfig(c),
|
||||
|
||||
LimitUploadRate: c.LimitUploadRate,
|
||||
LimitUploadBurst: c.LimitUploadBurst,
|
||||
LimitUploadAfter: c.LimitUploadAfter,
|
||||
LimitDownloadRate: c.LimitDownloadRate,
|
||||
LimitDownloadBurst: c.LimitDownloadBurst,
|
||||
LimitDownloadAfter: c.LimitDownloadAfter,
|
||||
LimitFbUploadRate: c.LimitFallbackUpload.BytesPerSec,
|
||||
LimitFbUploadBurst: c.LimitFallbackUpload.BurstBytesPerSec,
|
||||
LimitFbUploadAfter: c.LimitFallbackUpload.AfterBytes,
|
||||
LimitFbDownloadRate: c.LimitFallbackDownload.BytesPerSec,
|
||||
LimitFbDownloadBurst: c.LimitFallbackDownload.BurstBytesPerSec,
|
||||
LimitFbDownloadAfter: c.LimitFallbackDownload.AfterBytes,
|
||||
}
|
||||
config.ServerNames = make(map[string]bool)
|
||||
for _, serverName := range c.ServerNames {
|
||||
|
|
|
@ -42,12 +42,8 @@ type Config struct {
|
|||
SpiderX string `protobuf:"bytes,25,opt,name=spider_x,json=spiderX,proto3" json:"spider_x,omitempty"`
|
||||
SpiderY []int64 `protobuf:"varint,26,rep,packed,name=spider_y,json=spiderY,proto3" json:"spider_y,omitempty"`
|
||||
MasterKeyLog string `protobuf:"bytes,27,opt,name=master_key_log,json=masterKeyLog,proto3" json:"master_key_log,omitempty"`
|
||||
LimitUploadRate float64 `protobuf:"fixed64,28,opt,name=limit_upload_rate,json=limitUploadRate,proto3" json:"limit_upload_rate,omitempty"`
|
||||
LimitUploadBurst int64 `protobuf:"zigzag64,29,opt,name=limit_upload_burst,json=limitUploadBurst,proto3" json:"limit_upload_burst,omitempty"`
|
||||
LimitUploadAfter int64 `protobuf:"zigzag64,30,opt,name=limit_upload_after,json=limitUploadAfter,proto3" json:"limit_upload_after,omitempty"`
|
||||
LimitDownloadRate float64 `protobuf:"fixed64,31,opt,name=limit_download_rate,json=limitDownloadRate,proto3" json:"limit_download_rate,omitempty"`
|
||||
LimitDownloadBurst int64 `protobuf:"zigzag64,32,opt,name=limit_download_burst,json=limitDownloadBurst,proto3" json:"limit_download_burst,omitempty"`
|
||||
LimitDownloadAfter int64 `protobuf:"zigzag64,33,opt,name=limit_download_after,json=limitDownloadAfter,proto3" json:"limit_download_after,omitempty"`
|
||||
LimitFallbackUpload *LimitFallback `protobuf:"bytes,28,opt,name=limit_fallback_upload,json=limitFallbackUpload,proto3" json:"limit_fallback_upload,omitempty"`
|
||||
LimitFallbackDownload *LimitFallback `protobuf:"bytes,29,opt,name=limit_fallback_download,json=limitFallbackDownload,proto3" json:"limit_fallback_download,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Config) Reset() {
|
||||
|
@ -199,44 +195,77 @@ func (x *Config) GetMasterKeyLog() string {
|
|||
return ""
|
||||
}
|
||||
|
||||
func (x *Config) GetLimitUploadRate() float64 {
|
||||
func (x *Config) GetLimitFallbackUpload() *LimitFallback {
|
||||
if x != nil {
|
||||
return x.LimitUploadRate
|
||||
return x.LimitFallbackUpload
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Config) GetLimitFallbackDownload() *LimitFallback {
|
||||
if x != nil {
|
||||
return x.LimitFallbackDownload
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type LimitFallback struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
BytesPerSec float64 `protobuf:"fixed64,1,opt,name=bytes_per_sec,json=bytesPerSec,proto3" json:"bytes_per_sec,omitempty"`
|
||||
BurstBytesPerSec int64 `protobuf:"zigzag64,2,opt,name=burst_bytes_per_sec,json=burstBytesPerSec,proto3" json:"burst_bytes_per_sec,omitempty"`
|
||||
AfterBytes int64 `protobuf:"zigzag64,3,opt,name=after_bytes,json=afterBytes,proto3" json:"after_bytes,omitempty"`
|
||||
}
|
||||
|
||||
func (x *LimitFallback) Reset() {
|
||||
*x = LimitFallback{}
|
||||
mi := &file_transport_internet_reality_config_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *LimitFallback) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*LimitFallback) ProtoMessage() {}
|
||||
|
||||
func (x *LimitFallback) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_transport_internet_reality_config_proto_msgTypes[1]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use LimitFallback.ProtoReflect.Descriptor instead.
|
||||
func (*LimitFallback) Descriptor() ([]byte, []int) {
|
||||
return file_transport_internet_reality_config_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *LimitFallback) GetBytesPerSec() float64 {
|
||||
if x != nil {
|
||||
return x.BytesPerSec
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Config) GetLimitUploadBurst() int64 {
|
||||
func (x *LimitFallback) GetBurstBytesPerSec() int64 {
|
||||
if x != nil {
|
||||
return x.LimitUploadBurst
|
||||
return x.BurstBytesPerSec
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Config) GetLimitUploadAfter() int64 {
|
||||
func (x *LimitFallback) GetAfterBytes() int64 {
|
||||
if x != nil {
|
||||
return x.LimitUploadAfter
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Config) GetLimitDownloadRate() float64 {
|
||||
if x != nil {
|
||||
return x.LimitDownloadRate
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Config) GetLimitDownloadBurst() int64 {
|
||||
if x != nil {
|
||||
return x.LimitDownloadBurst
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Config) GetLimitDownloadAfter() int64 {
|
||||
if x != nil {
|
||||
return x.LimitDownloadAfter
|
||||
return x.AfterBytes
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
@ -248,7 +277,7 @@ var file_transport_internet_reality_config_proto_rawDesc = []byte{
|
|||
0x72, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x63, 0x6f, 0x6e,
|
||||
0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x78, 0x72, 0x61, 0x79, 0x2e,
|
||||
0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x65, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x9e, 0x06, 0x0a, 0x06, 0x43,
|
||||
0x65, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0xce, 0x05, 0x0a, 0x06, 0x43,
|
||||
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73,
|
||||
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
|
||||
|
@ -281,33 +310,36 @@ var file_transport_internet_reality_config_proto_rawDesc = []byte{
|
|||
0x52, 0x07, 0x73, 0x70, 0x69, 0x64, 0x65, 0x72, 0x59, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x73,
|
||||
0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x0c, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4c, 0x6f, 0x67, 0x12,
|
||||
0x2a, 0x0a, 0x11, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
|
||||
0x72, 0x61, 0x74, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x6c, 0x69, 0x6d, 0x69,
|
||||
0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6c,
|
||||
0x69, 0x6d, 0x69, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x75, 0x72, 0x73,
|
||||
0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x10, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x55, 0x70,
|
||||
0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x72, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x69, 0x6d,
|
||||
0x69, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18,
|
||||
0x1e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x10, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x55, 0x70, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x69, 0x6d, 0x69, 0x74,
|
||||
0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x1f,
|
||||
0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
|
||||
0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x69, 0x6d, 0x69, 0x74,
|
||||
0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18,
|
||||
0x20, 0x20, 0x01, 0x28, 0x12, 0x52, 0x12, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x44, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x72, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x69, 0x6d,
|
||||
0x69, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65,
|
||||
0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x12, 0x52, 0x12, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x44, 0x6f,
|
||||
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x42, 0x7f, 0x0a, 0x23, 0x63,
|
||||
0x6f, 0x6d, 0x2e, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
|
||||
0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x6c, 0x69,
|
||||
0x74, 0x79, 0x50, 0x01, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x2f, 0x78, 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61, 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f,
|
||||
0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x65, 0x74, 0x2f, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79, 0xaa, 0x02, 0x1f, 0x58, 0x72, 0x61,
|
||||
0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65,
|
||||
0x72, 0x6e, 0x65, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
0x62, 0x0a, 0x15, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
|
||||
0x6b, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e,
|
||||
0x2e, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e,
|
||||
0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79,
|
||||
0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x13,
|
||||
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x70, 0x6c,
|
||||
0x6f, 0x61, 0x64, 0x12, 0x66, 0x0a, 0x17, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x6c,
|
||||
0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x1d,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x74, 0x72, 0x61, 0x6e,
|
||||
0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2e, 0x72,
|
||||
0x65, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x61, 0x6c, 0x6c,
|
||||
0x62, 0x61, 0x63, 0x6b, 0x52, 0x15, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x61, 0x6c, 0x6c, 0x62,
|
||||
0x61, 0x63, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x0d,
|
||||
0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x22, 0x0a,
|
||||
0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65,
|
||||
0x63, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73,
|
||||
0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x10,
|
||||
0x62, 0x75, 0x72, 0x73, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63,
|
||||
0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65,
|
||||
0x73, 0x42, 0x7f, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x74, 0x72,
|
||||
0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74,
|
||||
0x2e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x01, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68,
|
||||
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61, 0x79,
|
||||
0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f,
|
||||
0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79,
|
||||
0xaa, 0x02, 0x1f, 0x58, 0x72, 0x61, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
|
||||
0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x69,
|
||||
0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
@ -322,16 +354,19 @@ func file_transport_internet_reality_config_proto_rawDescGZIP() []byte {
|
|||
return file_transport_internet_reality_config_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_transport_internet_reality_config_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_transport_internet_reality_config_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_transport_internet_reality_config_proto_goTypes = []any{
|
||||
(*Config)(nil), // 0: xray.transport.internet.reality.Config
|
||||
(*LimitFallback)(nil), // 1: xray.transport.internet.reality.LimitFallback
|
||||
}
|
||||
var file_transport_internet_reality_config_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
1, // 0: xray.transport.internet.reality.Config.limit_fallback_upload:type_name -> xray.transport.internet.reality.LimitFallback
|
||||
1, // 1: xray.transport.internet.reality.Config.limit_fallback_download:type_name -> xray.transport.internet.reality.LimitFallback
|
||||
2, // [2:2] is the sub-list for method output_type
|
||||
2, // [2:2] is the sub-list for method input_type
|
||||
2, // [2:2] is the sub-list for extension type_name
|
||||
2, // [2:2] is the sub-list for extension extendee
|
||||
0, // [0:2] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_transport_internet_reality_config_proto_init() }
|
||||
|
@ -345,7 +380,7 @@ func file_transport_internet_reality_config_proto_init() {
|
|||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_transport_internet_reality_config_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumMessages: 2,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
|
|
@ -26,10 +26,12 @@ message Config {
|
|||
repeated int64 spider_y = 26;
|
||||
string master_key_log = 27;
|
||||
|
||||
double limit_upload_rate = 28;
|
||||
sint64 limit_upload_burst = 29;
|
||||
sint64 limit_upload_after = 30;
|
||||
double limit_download_rate = 31;
|
||||
sint64 limit_download_burst = 32;
|
||||
sint64 limit_download_after = 33;
|
||||
LimitFallback limit_fallback_upload = 28;
|
||||
LimitFallback limit_fallback_download = 29;
|
||||
}
|
||||
|
||||
message LimitFallback {
|
||||
double bytes_per_sec = 1;
|
||||
sint64 burst_bytes_per_sec = 2;
|
||||
sint64 after_bytes = 3;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue