Completed the Authtoken Validate Service changes.

This commit is contained in:
Juan Carlos Luciani
2006-09-14 15:54:27 +00:00
parent b25b691642
commit e9680fbfa1
22 changed files with 340 additions and 801 deletions

View File

@@ -37,7 +37,7 @@
//===[ Manifest constants ]================================================
#define REMOTE_ENDPOINT_SIGNATURE 0x54525653 // SVRT
#define REMOTE_ENDPOINT_SIGNATURE 0X50454D52 // RMEP
//===[ Type definitions ]==================================================
@@ -75,7 +75,7 @@ RemoteEndPoint::RemoteEndPoint(
//
// Notes:
//
// L1
// L2
//=======================================================================--
{
DbgTrace(1, "RemoteEndPoint::RemoteEndPoint- Start, Obj = %08X\n", this);
@@ -349,6 +349,7 @@ RemoteEndPoint::submitReq(
// Perform the following in a loop to deal with abnormal connection terminations
unsigned long rpcRetryCount = 0;
bool okToRetry = true;
while (rpcRetryCount < m_maxRpcRetries)
{
// Get SmartCChannel
@@ -372,19 +373,30 @@ RemoteEndPoint::submitReq(
{
// Request submission over the channel succeeded, now
// wait for the completion of the request.
clientReq.waitForCompletion(ppServerData,
pServerDataLen);
if (clientReq.waitForCompletion(ppServerData,
pServerDataLen) == 0)
{
// Now proceed based on the completion status
ClientReq::CompletionStatus compStatus = clientReq.completionStatus();
if (compStatus == ClientReq::SuccessCompletionStatus)
{
// Success
retStatus = 0;
}
else
{
// Received a failure from the server, do not retry.
okToRetry = false;
}
}
else
{
// Error waiting for the completion.
okToRetry = false;
}
// Remove the request from the channel
pCChannel->removeReq(reqId);
// Now proceed based on the completion status
ClientReq::CompletionStatus compStatus = clientReq.completionStatus();
if (compStatus == ClientReq::SuccessCompletionStatus)
{
// Success
retStatus = 0;
}
}
else
{
@@ -402,8 +414,9 @@ RemoteEndPoint::submitReq(
DbgTrace(0, "RemoteEndPoint::submitReq- Channel unavailable\n", 0);
}
// Stop trying if the RPC succeeded
if (retStatus == 0)
// Stop trying if the RPC succeeded or if it is not ok to retry
if (retStatus == 0
|| !okToRetry)
break;
// Account for this RPC try