I reckon this change to src/remote/server/server.cpp in commit 
2fdb281759299f24d47349246f3c800ec78971cc introduced an unintended effect:

@@ -1715,11 +1814,8 @@ static bool accept_connection(rem_port* port, P_CNCT* 
connect, PACKET* send)
     for (const p_cnct::p_cnct_repeat* const end = protocol + 
connect->p_cnct_count;
           protocol < end; protocol++)
     {
-         if ((protocol->p_cnct_version == PROTOCOL_VERSION10 ||
-              protocol->p_cnct_version == PROTOCOL_VERSION11 ||
-              protocol->p_cnct_version == PROTOCOL_VERSION12 ||
-              protocol->p_cnct_version == PROTOCOL_VERSION13 ||
-              protocol->p_cnct_version == PROTOCOL_VERSION14) &&
+         if ((protocol->p_cnct_version >= PROTOCOL_VERSION10 &&
+              protocol->p_cnct_version <= PROTOCOL_VERSION15) &&
                 (protocol->p_cnct_architecture == arch_generic ||
                  protocol->p_cnct_architecture == ARCHITECTURE) &&
                protocol->p_cnct_weight >= weight)


The constants are defined in protocol.h:

const USHORT PROTOCOL_VERSION10  = 10;
// Since protocol 11 we must be separated from Borland Interbase.
// Therefore always set highmost bit in protocol version to 1.
// For unsigned protocol version this does not break version's compare.
const USHORT FB_PROTOCOL_FLAG = 0x8000;
const USHORT PROTOCOL_VERSION11  = (FB_PROTOCOL_FLAG | 11);
...
const USHORT PROTOCOL_VERSION15 = (FB_PROTOCOL_FLAG | 15);


So after the change above the version check accepts anything between 0x000a and 
0x800f – ie legacy protocol version 10, or Firebird protocol 11-15, as well as 
any newer InterBase protocol versions.  If the list of protocol versions is 
getting a bit long to check each one individually, then how about something 
like the following?

        if ((protocol->p_cnct_version == PROTOCOL_VERSION10 ||
             (protocol->p_cnct_version >= PROTOCOL_VERSION11 &&
              protocol->p_cnct_version <= PROTOCOL_VERSION15)) &&
            (protocol->p_cnct_architecture == arch_generic ||
             protocol->p_cnct_architecture == ARCHITECTURE) &&
            protocol->p_cnct_weight >= weight)




From: [email protected] [mailto:[email protected]]
Sent: Thursday, 21 December 2017 10:15 AM
To: [email protected]
Subject: RE: [firebird-support] Firebird 3.0.3 no longer compatible with 
InterBase 7.5.1 clients


Hmm, that’s interesting thanks Mark… when connecting to a Firebird 3.0.1 
server, I see this in mon$attachments (where mon$system_flag=0):

MON$REMOTE_PID MON$REMOTE_PROCESS        MON$REMOTE_PROTOCOL MON$REMOTE_VERSION
-------------- ------------------        ------------------- ------------------
<null>         <null>                    TCPv4               P10
23184          C:\Apps\fbclient\isql.exe TCPv4               P14


But when connecting to Firebird 3.0.2 (or 3.0.3 nightly… sorry about the 
confusion with version numbers there!) I see:

MON$REMOTE_PID MON$REMOTE_PROCESS        MON$REMOTE_PROTOCOL MON$REMOTE_VERSION
-------------- ------------------        ------------------- ------------------
<null>         <null>                    TCPv4               P14
19512          C:\Apps\fbclient\isql.exe TCPv4               P14


In each case the monitoring attachment is made using a Firebird client while an 
existing idle connection from InterBase 7.5.1 isql is open.  Firebird 3.0.1 
reports the InterBase client as using protocol version 10, but Firebird 3.0.2 
reports it as protocol version 14.



From: [email protected] [mailto:[email protected]]
Sent: Wednesday, 20 December 2017 10:40 PM
To: [email protected]
Subject: Re: [firebird-support] Firebird 3.0.3 no longer compatible with 
InterBase 7.5.1 clients



On 19-12-2017 21:06, Dimitry Sibiryakov [email protected]
[firebird-support] wrote:
> 19.12.2017 4:32, FSPAPA INCA Team [email protected] [firebird-support] 
> wrote:
>> Wireshark traces show that the server is sending all the data from the 
>> query, but the
>> client is not recognising it and waits forever
>
> So, you, actually, should ask Embarcadero why their client cannot work with 
> Firebird
> anymore.

Not necessarily, it could also mean that 3.0.3 has a change that breaks
protocol version 10.

--
Mark Rotteveel

________________________________
Posted by: Mark Rotteveel <[email protected]>

------------------------------------------------------------------------------------------------------------------------
Note:
This e-mail message has been inspected for malicious content.

Attention:
The information contained in this message and or attachments is intended only 
for the person
or entity to which it is addressed and may contain confidential and/or 
privileged material. Any
review, retransmission, dissemination or other use of, or taking of any action 
in reliance upon,
this information by persons or entities other than the intended recipient is 
prohibited. If you
received this in error, please contact the sender and delete the material from 
any system and
destroy any copies.
Please note that the views and opinions expressed in this message may be those 
of the
individual and not necessarily those of Foodstuffs South Island Ltd.

Thank you.
------------------------------------------------------------------------------------------------------------------------

________________________________
Posted by: FSPAPA INCA Team <[email protected]>

------------------------------------------------------------------------------------------------------------------------
Note:
This e-mail message has been inspected for malicious content.

Attention:
The information contained in this message and or attachments is intended only 
for the person
or entity to which it is addressed and may contain confidential and/or 
privileged material. Any
review, retransmission, dissemination or other use of, or taking of any action 
in reliance upon,
this information by persons or entities other than the intended recipient is 
prohibited. If you
received this in error, please contact the sender and delete the material from 
any system and
destroy any copies.
Please note that the views and opinions expressed in this message may be those 
of the
individual and not necessarily those of Foodstuffs South Island Ltd.

Thank you.
------------------------------------------------------------------------------------------------------------------------

Reply via email to