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-standard on a PeSIT server sets Server.AllowLegacyProfile; standard keeps 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.

Edited Sep 11, 2026 by Driss Demiray
Assignee Loading
Time tracking Loading