|
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.
|