mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-06-14 07:18:40 +00:00
XHTTP XMUX: Add hMaxRequestTimes
and hKeepAlivePeriod
(#4163)
Fixes https://github.com/XTLS/Xray-core/discussions/4113#discussioncomment-11492833
This commit is contained in:
parent
7463561856
commit
73e0d4a666
10 changed files with 515 additions and 430 deletions
|
@ -37,7 +37,7 @@ func (c *Config) GetNormalizedQuery() string {
|
|||
query += "&"
|
||||
}
|
||||
|
||||
paddingLen := c.GetNormalizedXPaddingBytes().roll()
|
||||
paddingLen := c.GetNormalizedXPaddingBytes().rand()
|
||||
if paddingLen > 0 {
|
||||
query += "x_padding=" + strings.Repeat("0", int(paddingLen))
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ func (c *Config) WriteResponseHeader(writer http.ResponseWriter) {
|
|||
// CORS headers for the browser dialer
|
||||
writer.Header().Set("Access-Control-Allow-Origin", "*")
|
||||
writer.Header().Set("Access-Control-Allow-Methods", "GET, POST")
|
||||
paddingLen := c.GetNormalizedXPaddingBytes().roll()
|
||||
paddingLen := c.GetNormalizedXPaddingBytes().rand()
|
||||
if paddingLen > 0 {
|
||||
writer.Header().Set("X-Padding", strings.Repeat("0", int(paddingLen)))
|
||||
}
|
||||
|
@ -72,9 +72,9 @@ func (c *Config) GetNormalizedScMaxBufferedPosts() int {
|
|||
return int(c.ScMaxBufferedPosts)
|
||||
}
|
||||
|
||||
func (c *Config) GetNormalizedScMaxEachPostBytes() RandRangeConfig {
|
||||
func (c *Config) GetNormalizedScMaxEachPostBytes() RangeConfig {
|
||||
if c.ScMaxEachPostBytes == nil || c.ScMaxEachPostBytes.To == 0 {
|
||||
return RandRangeConfig{
|
||||
return RangeConfig{
|
||||
From: 1000000,
|
||||
To: 1000000,
|
||||
}
|
||||
|
@ -83,9 +83,9 @@ func (c *Config) GetNormalizedScMaxEachPostBytes() RandRangeConfig {
|
|||
return *c.ScMaxEachPostBytes
|
||||
}
|
||||
|
||||
func (c *Config) GetNormalizedScMinPostsIntervalMs() RandRangeConfig {
|
||||
func (c *Config) GetNormalizedScMinPostsIntervalMs() RangeConfig {
|
||||
if c.ScMinPostsIntervalMs == nil || c.ScMinPostsIntervalMs.To == 0 {
|
||||
return RandRangeConfig{
|
||||
return RangeConfig{
|
||||
From: 30,
|
||||
To: 30,
|
||||
}
|
||||
|
@ -94,9 +94,9 @@ func (c *Config) GetNormalizedScMinPostsIntervalMs() RandRangeConfig {
|
|||
return *c.ScMinPostsIntervalMs
|
||||
}
|
||||
|
||||
func (c *Config) GetNormalizedXPaddingBytes() RandRangeConfig {
|
||||
func (c *Config) GetNormalizedXPaddingBytes() RangeConfig {
|
||||
if c.XPaddingBytes == nil || c.XPaddingBytes.To == 0 {
|
||||
return RandRangeConfig{
|
||||
return RangeConfig{
|
||||
From: 100,
|
||||
To: 1000,
|
||||
}
|
||||
|
@ -105,9 +105,20 @@ func (c *Config) GetNormalizedXPaddingBytes() RandRangeConfig {
|
|||
return *c.XPaddingBytes
|
||||
}
|
||||
|
||||
func (m *Multiplexing) GetNormalizedCMaxReuseTimes() RandRangeConfig {
|
||||
func (m *XmuxConfig) GetNormalizedCMaxRequestTimes() RangeConfig {
|
||||
if m.HMaxRequestTimes == nil {
|
||||
return RangeConfig{
|
||||
From: 0,
|
||||
To: 0,
|
||||
}
|
||||
}
|
||||
|
||||
return *m.HMaxRequestTimes
|
||||
}
|
||||
|
||||
func (m *XmuxConfig) GetNormalizedCMaxReuseTimes() RangeConfig {
|
||||
if m.CMaxReuseTimes == nil {
|
||||
return RandRangeConfig{
|
||||
return RangeConfig{
|
||||
From: 0,
|
||||
To: 0,
|
||||
}
|
||||
|
@ -116,9 +127,9 @@ func (m *Multiplexing) GetNormalizedCMaxReuseTimes() RandRangeConfig {
|
|||
return *m.CMaxReuseTimes
|
||||
}
|
||||
|
||||
func (m *Multiplexing) GetNormalizedCMaxLifetimeMs() RandRangeConfig {
|
||||
if m.CMaxLifetimeMs == nil || m.CMaxLifetimeMs.To == 0 {
|
||||
return RandRangeConfig{
|
||||
func (m *XmuxConfig) GetNormalizedCMaxLifetimeMs() RangeConfig {
|
||||
if m.CMaxLifetimeMs == nil {
|
||||
return RangeConfig{
|
||||
From: 0,
|
||||
To: 0,
|
||||
}
|
||||
|
@ -126,9 +137,9 @@ func (m *Multiplexing) GetNormalizedCMaxLifetimeMs() RandRangeConfig {
|
|||
return *m.CMaxLifetimeMs
|
||||
}
|
||||
|
||||
func (m *Multiplexing) GetNormalizedMaxConnections() RandRangeConfig {
|
||||
func (m *XmuxConfig) GetNormalizedMaxConnections() RangeConfig {
|
||||
if m.MaxConnections == nil {
|
||||
return RandRangeConfig{
|
||||
return RangeConfig{
|
||||
From: 0,
|
||||
To: 0,
|
||||
}
|
||||
|
@ -137,9 +148,9 @@ func (m *Multiplexing) GetNormalizedMaxConnections() RandRangeConfig {
|
|||
return *m.MaxConnections
|
||||
}
|
||||
|
||||
func (m *Multiplexing) GetNormalizedMaxConcurrency() RandRangeConfig {
|
||||
func (m *XmuxConfig) GetNormalizedMaxConcurrency() RangeConfig {
|
||||
if m.MaxConcurrency == nil {
|
||||
return RandRangeConfig{
|
||||
return RangeConfig{
|
||||
From: 0,
|
||||
To: 0,
|
||||
}
|
||||
|
@ -154,7 +165,7 @@ func init() {
|
|||
}))
|
||||
}
|
||||
|
||||
func (c RandRangeConfig) roll() int32 {
|
||||
func (c RangeConfig) rand() int32 {
|
||||
if c.From == c.To {
|
||||
return c.From
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue