From: <ale...@us...> - 2013-11-05 06:52:53
|
Revision: 58747 http://sourceforge.net/p/firebird/code/58747 Author: alexpeshkoff Date: 2013-11-05 06:52:50 +0000 (Tue, 05 Nov 2013) Log Message: ----------- Fixed "Enabled" state of wire encyption Modified Paths: -------------- firebird/trunk/src/remote/remote.cpp firebird/trunk/src/remote/server/server.cpp Modified: firebird/trunk/src/remote/remote.cpp =================================================================== --- firebird/trunk/src/remote/remote.cpp 2013-11-02 16:32:07 UTC (rev 58746) +++ firebird/trunk/src/remote/remote.cpp 2013-11-05 06:52:50 UTC (rev 58747) @@ -1398,6 +1398,6 @@ signed char wcCompatible[3][3] = { /* DISABLED ENABLED REQUIRED */ /* DISABLED */ {0, 0, -1}, -/* ENABLED */ {0, 1, 1}, -/* REQUIRED */ {-1, 1, 1} +/* ENABLED */ {0, 1, 2}, +/* REQUIRED */ {-1, 2, 2} }; Modified: firebird/trunk/src/remote/server/server.cpp =================================================================== --- firebird/trunk/src/remote/server/server.cpp 2013-11-02 16:32:07 UTC (rev 58746) +++ firebird/trunk/src/remote/server/server.cpp 2013-11-05 06:52:50 UTC (rev 58747) @@ -1538,7 +1538,7 @@ } -bool requiredEncryption(rem_port* port, ClumpletReader& id) +bool wireEncryption(rem_port* port, ClumpletReader& id) { int clientCrypt = id.find(CNCT_client_crypt) ? id.getInt() : WIRE_CRYPT_ENABLED; int serverCrypt = port->getPortConfig()->getWireCrypt(WC_SERVER); @@ -1547,8 +1547,8 @@ Arg::Gds(isc_wirecrypt_incompatible).raise(); } - port->port_required_encryption = wcCompatible[clientCrypt][serverCrypt] > 0; - return port->port_required_encryption; + port->port_required_encryption = wcCompatible[clientCrypt][serverCrypt] == 2; + return wcCompatible[clientCrypt][serverCrypt] > 0; } @@ -1682,7 +1682,7 @@ send->p_acpd.p_acpt_authenticated = 0; } - if (accepted && requiredEncryption(port, id)) + if (accepted && wireEncryption(port, id)) { if (version >= PROTOCOL_VERSION13) { @@ -1698,7 +1698,10 @@ return true; } - accepted = false; + if (port->port_required_encryption) + { + accepted = false; + } } // We are going to try authentication handshake This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |