Accept legacy-profile PeSIT callers in non-standard compatibility mode
Summary
Some widely deployed PeSIT implementations call, by default, with a pre-connection profile of their own, which lib/pesit refuses as bad protocol. lib/pesitlib/pesit#50 makes the library able to accept it when the application allows it, and lib/pesitlib/pesit#49 declares the PI 94 such callers use for their free parameter. This issue is the application side.
Standard mode is the specification, strictly; non-standard mode is where the conventions of other implementations are accepted. So:
-
compatibilityMode: non-standardon a PeSIT server setsServer.AllowLegacyProfile;standardkeeps refusing such callers (now logged by the library); - for such callers, the free parameter (PI 94) is exposed as
__clientTransFreetext__, which is what rules expect, and the structured PI 99 they send is kept as is under__clientTransFreetextRaw__.
Nothing is emitted in this profile: Waarp Gateway calls its partners in standard PeSIT.
Why in a patch release
A production deployment migrating to Waarp Gateway has partners calling in this profile who cannot change their configuration; without this the receive flows from those partners cannot be validated. Flagged as a feature: to be moved to v0.17.0 if it cannot ship in 0.16.x.
Dependencies
Requires lib/pesit v0.1.10 (issues above). The merge request is a draft until go.mod can point to the tagged release.
Test
TestLegacyProfileFollowsCompatibilityMode: a raw legacy pre-connection message is answered by a non-standard server and refused (connection closed) by a standard one. Measured on a real peer calling in this profile: reception passes end to end.