mirror of
https://github.com/XTLS/Xray-core.git
synced 2024-11-27 02:51:30 +00:00
WireGuard inbound: Fix leaking session information between requests (#4030)
Fixes https://github.com/XTLS/Xray-core/issues/3948 https://github.com/XTLS/Xray-core/issues/4025
This commit is contained in:
parent
7d3d6b05e3
commit
59e5d24280
|
@ -144,15 +144,20 @@ func (s *Server) forwardConnection(dest net.Destination, conn net.Conn) {
|
||||||
Reason: "",
|
Reason: "",
|
||||||
})
|
})
|
||||||
|
|
||||||
if s.info.inboundTag != nil {
|
// what's this?
|
||||||
ctx = session.ContextWithInbound(ctx, s.info.inboundTag)
|
// Session information should not be shared between different connections
|
||||||
}
|
// why reuse them in server level? This will cause incorrect destoverride and unexpected routing behavior.
|
||||||
if s.info.outboundTag != nil {
|
// Disable it temporarily. Maybe s.info should be removed.
|
||||||
ctx = session.ContextWithOutbounds(ctx, []*session.Outbound{s.info.outboundTag})
|
|
||||||
}
|
// if s.info.inboundTag != nil {
|
||||||
if s.info.contentTag != nil {
|
// ctx = session.ContextWithInbound(ctx, s.info.inboundTag)
|
||||||
ctx = session.ContextWithContent(ctx, s.info.contentTag)
|
// }
|
||||||
}
|
// if s.info.outboundTag != nil {
|
||||||
|
// ctx = session.ContextWithOutbounds(ctx, []*session.Outbound{s.info.outboundTag})
|
||||||
|
// }
|
||||||
|
// if s.info.contentTag != nil {
|
||||||
|
// ctx = session.ContextWithContent(ctx, s.info.contentTag)
|
||||||
|
// }
|
||||||
|
|
||||||
link, err := s.info.dispatcher.Dispatch(ctx, dest)
|
link, err := s.info.dispatcher.Dispatch(ctx, dest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue