Add system property for packet direction validation#1761
Add system property for packet direction validation#1761pop4959 wants to merge 2 commits intoPaperMC:dev/3.0.0from
Conversation
|
@booky10 Would love your input here if the original validation was necessary to for example fix some niche issue. If it's sensitive feel free to reach out privately. I would love to preserve this validation if it serves some purpose, but definitely need more context as to what the default should be. |
|
The way that phase works kinda expects that we understand all of the packets used during that phase, and so not knowing stuff is a really weird situation, which can cause problems, such as not allowing a client to connect properly The generic handling should work so this is probably not a huge concern, just, wouldn't be a setup we could provide support within |
|
Worth noting for those looking; this also fixes some issues with Forge/Fabric servers when connecting. That in combination with |
|
is the forge/fabric thing still an issue? The primary reported case this was trying to jump around was fixed by: #1747 if so, would need means of reproduction |
|
I believe otherwise this was just reported by #1723 but for our use case this is solved, so I'll go ahead and close this PR |
An unintentional side effect introduced as a byproduct of the additional validation added in #1743 (in particular, the check added for packet direction and connection state) is that it breaks servers running a proxy-in-proxy configuration. Granted of course this is a known grey area and this is not officially supported, however we have had numerous complaints from users claiming that after updating to Velocity for Minecraft 26.1, their server no longer works.
The aim is to keep this validation optional via an added system property, retaining support for proxy-in-proxy, as it currently works fine otherwise, without any other changes on the user-end.
If there was any specific reasoning or justification for the validation being added that I'm unaware of, please let me know, but for the most part my understanding is that it was added as a generic safeguard because this is an uncommon packet state which doesn't normally occur for a single proxy to server.