8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 21:23:04 +01:00

Fixed CORE-5881: Network server ignores any error that took place in KeyHolderPlugin when establishing initial callback with client

This commit is contained in:
Alex Peshkoff 2018-07-30 14:08:44 +03:00
parent e05b6ca155
commit 7a7367e1a4

View File

@ -225,15 +225,23 @@ public:
CheckStatusWrapper st(&ls);
networkCallback.wake = false;
if (keyPlugin->keyCallback(&st, &networkCallback) && networkCallback.wake)
bool callbackResult = keyPlugin->keyCallback(&st, &networkCallback);
if (st.getErrors()[1] != isc_wish_list)
check(&st);
if (callbackResult && networkCallback.wake)
{
// current holder has a key and it seems to be from the client
keyHolder = keyPlugin;
keyHolder->addRef();
keyCallback = keyHolder->chainHandle(&st);
if (st.isEmpty() && keyCallback)
break;
if (st.isEmpty())
{
if (keyCallback)
break;
}
else if (st.getErrors()[1] != isc_wish_list)
check(&st);
}
}
}