mirror of
https://github.com/e1732a364fed/v2ray_simple.git
synced 2025-11-02 04:52:43 +08:00
修复大量与websocket和回落相关的bug;
修复 websocket时无回落的问题 修复 websocket不匹配时直接返回内部错误字符串导致 可探测 的超级bug 修复回落不匹配问题 修复websocket时readv闪退问题 修复 命令行 loglevel参数被配置文件覆盖问题 修复获取tls 的 alpn和 sni时遇到空指针闪退问题 将默认fallback地址的赋值放到通用代码中; 移除 ErrSingleFallback, 改用utils.ErrFirstBuffer 使ws的server可以返回 预设的path
This commit is contained in:
@@ -92,7 +92,26 @@ func TryCopy(writeConn io.Writer, readConn io.Reader) (allnum int64, err error)
|
||||
num, err2 = multiWriter.WriteBuffers(buffers)
|
||||
|
||||
} else {
|
||||
num, err2 = buffers.WriteTo(writeConn)
|
||||
//num, err2 = buffers.WriteTo(writeConn)
|
||||
// 实测发现这里不能直接使用 buffers.WriteTo, 因为它会修改buffer本身
|
||||
// 而我们为了缓存,是不能允许篡改的
|
||||
// 所以我们在确保 writeConn 不是 基本连接后, 要 自行write
|
||||
|
||||
if IsBasicConn(writeConn) {
|
||||
num, err2 = buffers.WriteTo(writeConn)
|
||||
} else {
|
||||
|
||||
for _, b := range buffers {
|
||||
nb, err := writeConn.Write(b)
|
||||
num += int64(nb)
|
||||
if err != nil {
|
||||
|
||||
err2 = err
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
allnum += num
|
||||
|
||||
Reference in New Issue
Block a user