mirror of
https://github.com/XTLS/Xray-core.git
synced 2026-10-30 23:16:58 +00:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d08386da3 | ||
|
|
0fdb276fb7 |
+1
-18
@@ -1,8 +1,6 @@
|
||||
package geodata
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"compress/gzip"
|
||||
"context"
|
||||
"crypto/tls"
|
||||
go_errors "errors"
|
||||
@@ -199,22 +197,7 @@ func (d *downloader) fetch(rawURL string, writer io.Writer) error {
|
||||
return errors.New("geodata download exceeds 256 MiB")
|
||||
}
|
||||
|
||||
br := bufio.NewReader(resp.Body)
|
||||
header, err := br.Peek(2)
|
||||
if err != nil && err != io.EOF {
|
||||
return err
|
||||
}
|
||||
var body io.Reader = br
|
||||
if len(header) == 2 && header[0] == 0x1f && header[1] == 0x8b {
|
||||
zr, err := gzip.NewReader(br)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer zr.Close()
|
||||
body = zr
|
||||
}
|
||||
|
||||
n, err := io.Copy(writer, io.LimitReader(body, maxDownloadSize+1))
|
||||
n, err := io.Copy(writer, io.LimitReader(resp.Body, maxDownloadSize+1))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -89,6 +89,9 @@ func (dl *DefaultListener) Listen(ctx context.Context, addr net.Addr, sockopt *S
|
||||
lc.Control = getControlFunc(ctx, sockopt, dl.controllers)
|
||||
// default disable keepalive
|
||||
lc.KeepAlive = -1
|
||||
// MPTCP is enabled by default golang listener
|
||||
// due to CVE-2026-98432, MPTCP should be disabled by default
|
||||
lc.SetMultipathTCP(false)
|
||||
if sockopt != nil {
|
||||
if sockopt.TcpKeepAliveIdle*sockopt.TcpKeepAliveInterval < 0 {
|
||||
return nil, errors.New("invalid TcpKeepAliveIdle or TcpKeepAliveInterval value: ", sockopt.TcpKeepAliveIdle, " ", sockopt.TcpKeepAliveInterval)
|
||||
@@ -107,9 +110,7 @@ func (dl *DefaultListener) Listen(ctx context.Context, addr net.Addr, sockopt *S
|
||||
lc.KeepAliveConfig.Enable = true
|
||||
lc.KeepAliveConfig.Interval = time.Duration(sockopt.TcpKeepAliveInterval) * time.Second
|
||||
}
|
||||
if sockopt.TcpMptcp {
|
||||
lc.SetMultipathTCP(true)
|
||||
}
|
||||
lc.SetMultipathTCP(sockopt.TcpMptcp)
|
||||
}
|
||||
case *net.UnixAddr:
|
||||
lc.Control = nil
|
||||
|
||||
Reference in New Issue
Block a user