|
|
@ -4,7 +4,6 @@ package buf
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
import (
|
|
|
|
"io"
|
|
|
|
"io"
|
|
|
|
"runtime"
|
|
|
|
|
|
|
|
"syscall"
|
|
|
|
"syscall"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/xtls/xray-core/common/platform"
|
|
|
|
"github.com/xtls/xray-core/common/platform"
|
|
|
@ -134,17 +133,13 @@ func (r *ReadVReader) ReadMultiBuffer() (MultiBuffer, error) {
|
|
|
|
return mb, nil
|
|
|
|
return mb, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var useReadv = true
|
|
|
|
var useReadv bool
|
|
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
func init() {
|
|
|
|
const defaultFlagValue = "NOT_DEFINED_AT_ALL"
|
|
|
|
const defaultFlagValue = "NOT_DEFINED_AT_ALL"
|
|
|
|
value := platform.NewEnvFlag("xray.buf.readv").GetValue(func() string { return defaultFlagValue })
|
|
|
|
value := platform.NewEnvFlag("xray.buf.readv").GetValue(func() string { return defaultFlagValue })
|
|
|
|
switch value {
|
|
|
|
switch value {
|
|
|
|
case defaultFlagValue, "auto":
|
|
|
|
case defaultFlagValue, "auto", "enable":
|
|
|
|
if (runtime.GOARCH == "386" || runtime.GOARCH == "amd64" || runtime.GOARCH == "s390x") && (runtime.GOOS == "linux" || runtime.GOOS == "darwin" || runtime.GOOS == "windows") {
|
|
|
|
|
|
|
|
useReadv = true
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
case "enable":
|
|
|
|
|
|
|
|
useReadv = true
|
|
|
|
useReadv = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|