|
|
@@ -260,8 +260,8 @@ func XtlsRead(reader buf.Reader, writer buf.Writer, timer signal.ActivityUpdater
|
|
|
for {
|
|
|
if shouldSwitchToDirectCopy {
|
|
|
shouldSwitchToDirectCopy = false
|
|
|
- if runtime.GOOS == "linux" || runtime.GOOS == "android" {
|
|
|
- if inbound := session.InboundFromContext(ctx); inbound != nil && inbound.Conn != nil {
|
|
|
+ if inbound := session.InboundFromContext(ctx); inbound != nil && inbound.Conn != nil && (runtime.GOOS == "linux" || runtime.GOOS == "android") {
|
|
|
+ if _, ok := inbound.User.Account.(*vless.MemoryAccount); inbound.User.Account == nil || ok {
|
|
|
iConn := inbound.Conn
|
|
|
statConn, ok := iConn.(*stat.CounterConnection)
|
|
|
if ok {
|
|
|
@@ -281,11 +281,7 @@ func XtlsRead(reader buf.Reader, writer buf.Writer, timer signal.ActivityUpdater
|
|
|
statConn.WriteCounter.Add(w)
|
|
|
}
|
|
|
return err
|
|
|
- } else {
|
|
|
- panic("XTLS Splice: not TCP inbound")
|
|
|
}
|
|
|
- } else {
|
|
|
- // panic("XTLS Splice: nil inbound or nil inbound.Conn")
|
|
|
}
|
|
|
}
|
|
|
reader = buf.NewReadVReader(conn, rawConn, nil)
|