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:
parent
e05b6ca155
commit
7a7367e1a4
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user