[
https://issues.apache.org/jira/browse/GEODE-10096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Blake Bender updated GEODE-10096:
---------------------------------
Description:
In the method TcrConnection::initTcrConnection, the following block of code
appears:
{code:java}
switch (acceptanceCode[0]) {
case REPLY_OK:
case SUCCESSFUL_SERVER_TO_CLIENT:
LOGFINER("Handshake reply: %u,%u,%u", acceptanceCode[0],
serverQueueStatus[0], recvMsgLen2);
if (isClientNotification) readHandshakeInstantiatorMsg(connectTimeout);
break;
case REPLY_AUTHENTICATION_FAILED: {
AuthenticationFailedException ex(
reinterpret_cast<char*>(recvMessage.data()));
m_conn.reset();
throwException(ex);
}
case REPLY_AUTHENTICATION_REQUIRED: {
AuthenticationRequiredException ex(
reinterpret_cast<char*>(recvMessage.data()));
m_conn.reset();
throwException(ex);
}
case REPLY_DUPLICATE_DURABLE_CLIENT: {
DuplicateDurableClientException ex(
reinterpret_cast<char*>(recvMessage.data()));
m_conn.reset();
throwException(ex);
}
case REPLY_REFUSED:
case REPLY_INVALID:
case UNSUCCESSFUL_SERVER_TO_CLIENT: {
LOGERROR("Handshake rejected by server[%s]: %s",
m_endpointObj->name().c_str(),
reinterpret_cast<char*>(recvMessage.data()));
auto message = std::string("TcrConnection::TcrConnection: ") +
"Handshake rejected by server: " +
reinterpret_cast<char*>(recvMessage.data());
CacheServerException ex(message);
m_conn.reset();
throw ex;
}
{code}
These response codes are unique to the server handshake, and not used anywhere
else in the code. We need to remove the #defines for them and put them in a
proper enum class.
was:
In the method TcrConnection::initTcrConnection, the following block of code
appears:
{code:java}
switch (acceptanceCode[0]) {
case REPLY_OK:
case SUCCESSFUL_SERVER_TO_CLIENT:
LOGFINER("Handshake reply: %u,%u,%u", acceptanceCode[0],
serverQueueStatus[0], recvMsgLen2);
if (isClientNotification) readHandshakeInstantiatorMsg(connectTimeout);
break;
case REPLY_AUTHENTICATION_FAILED: {
AuthenticationFailedException ex(
reinterpret_cast<char*>(recvMessage.data()));
m_conn.reset();
throwException(ex);
}
case REPLY_AUTHENTICATION_REQUIRED: {
AuthenticationRequiredException ex(
reinterpret_cast<char*>(recvMessage.data()));
m_conn.reset();
throwException(ex);
}
case REPLY_DUPLICATE_DURABLE_CLIENT: {
DuplicateDurableClientException ex(
reinterpret_cast<char*>(recvMessage.data()));
m_conn.reset();
throwException(ex);
}
case REPLY_REFUSED:
case REPLY_INVALID:
case UNSUCCESSFUL_SERVER_TO_CLIENT: {
LOGERROR("Handshake rejected by server[%s]: %s",
m_endpointObj->name().c_str(),
reinterpret_cast<char*>(recvMessage.data()));
auto message = std::string("TcrConnection::TcrConnection: ") +
"Handshake rejected by server: " +
reinterpret_cast<char*>(recvMessage.data());
CacheServerException ex(message);
m_conn.reset();
throw ex;
}
{code}
These response codes are unique to the server handshake, and not used anywhere
else in the code. We need to remove the #definess for them and put them in a
proper enum class.
> Handshake "acceptance codes" should be an enum class
> ----------------------------------------------------
>
> Key: GEODE-10096
> URL: https://issues.apache.org/jira/browse/GEODE-10096
> Project: Geode
> Issue Type: Improvement
> Components: native client
> Reporter: Blake Bender
> Priority: Major
>
> In the method TcrConnection::initTcrConnection, the following block of code
> appears:
> {code:java}
> switch (acceptanceCode[0]) {
> case REPLY_OK:
> case SUCCESSFUL_SERVER_TO_CLIENT:
> LOGFINER("Handshake reply: %u,%u,%u", acceptanceCode[0],
> serverQueueStatus[0], recvMsgLen2);
> if (isClientNotification)
> readHandshakeInstantiatorMsg(connectTimeout);
> break;
> case REPLY_AUTHENTICATION_FAILED: {
> AuthenticationFailedException ex(
> reinterpret_cast<char*>(recvMessage.data()));
> m_conn.reset();
> throwException(ex);
> }
> case REPLY_AUTHENTICATION_REQUIRED: {
> AuthenticationRequiredException ex(
> reinterpret_cast<char*>(recvMessage.data()));
> m_conn.reset();
> throwException(ex);
> }
> case REPLY_DUPLICATE_DURABLE_CLIENT: {
> DuplicateDurableClientException ex(
> reinterpret_cast<char*>(recvMessage.data()));
> m_conn.reset();
> throwException(ex);
> }
> case REPLY_REFUSED:
> case REPLY_INVALID:
> case UNSUCCESSFUL_SERVER_TO_CLIENT: {
> LOGERROR("Handshake rejected by server[%s]: %s",
> m_endpointObj->name().c_str(),
> reinterpret_cast<char*>(recvMessage.data()));
> auto message = std::string("TcrConnection::TcrConnection: ") +
> "Handshake rejected by server: " +
> reinterpret_cast<char*>(recvMessage.data());
> CacheServerException ex(message);
> m_conn.reset();
> throw ex;
> }
> {code}
> These response codes are unique to the server handshake, and not used
> anywhere else in the code. We need to remove the #defines for them and put
> them in a proper enum class.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)