On 2016-03-03 12:44, Alex Peshkoff wrote: > On 03/03/2016 12:26 PM, Mark Rotteveel wrote: > >> But my main concern >> has to do with my experience with wire protocol changes in Firebird: >> they are usually poorly documented, > > Poorly is incorrect word here, remote protocol is not documented at > all > and (as far as I know) was never documented. > Except comments in sources.
There is the wireprotocol documentation that was written by Carlos Guzman Alvarez when he did the Firebird .net implementation. I have since made some additions as part of my work with adding v11 and v12 to Jaybird. However, it is mostly the layout of the messages, and it misses a lot of context, expectations and meaning. So it could use some fleshing out with more information. There doesn't seem to be a recent build on the website, but an old build can be found in https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/blob/master/Documentation/FirebirdWireProtocol.pdf It is in the manual project under /src/docs/firebirddocs/wireprotocol.xml >> when you have to >> reimplement in a different language (or find the right library to do >> the >> work for you). That is why I'm stressing that things need to be >> specced >> and documented when it involves the wire protocol. > > I plan to write such document - unfortunately can't do it soon. But > please do not expect hard protocol description regarding initial > handshake - with various authentication and wire encryption plugins > and > related configuration settings (with encryption turned off less > round-trips may be needed for handshake) such straightforward > description of handshake protocol just can not exist. I think that should be possible, otherwise the current implementation would be an 'accident' that it even works and there would be no guarantee it continues to work in the future when new changes are introduced (or new plugins added). It might be hard to write the expected state transitions and conditions and think of all corner cases after the fact, but I don't think it impossible to write the main flow(s). In my opinion such things should be thought out first, reviewed and critiqued by others (eg us driver implementers), and then implemented, with maybe a number of iterations/revisions to fix things that turned out less straightforward when implementing. Mark ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel