| 
   Available in LEADTOOLS Medical Imaging toolkits.  | 
LDicomNet::GetErrorSecure
#include "ltdic.h"
L_UINT32 LDicomNet::GetErrorSecure()
Returns a special ISCL or TLS error. This function is available in the PACS Imaging toolkits.
Returns
Returns the last occurring error code.
Returns a specialized ISCL or TLS error code. For a list of possible values, refer to Return Codes.
Comments
The errors returned by this function may be useful for debugging purposes.
Required DLLs and Libraries
| 
 LTDIC For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application  | 
See Also
| 
 Functions:  | 
|
| 
 Topics:  | 
|
| 
 
  | 
 General Integrated Secure Communication Layer (ISCL) Information  | 
Example
// LMyDicomNet is a class derived from LDicomNet. The methods are overridden as follows:
#include <stdlib.h> // for definition of rand()
L_UINT64 GetRandom()
{
   L_UINT64 nRet;
   nRet = ((L_UINT64)(rand())<<48) + ((L_UINT64)(rand())<<32) + (rand()<<16) + (rand()<<8) + rand();
   return nRet;
}
L_UINT32 LMyDicomNetExt::GetChallengeISCL(L_UINT64 *pChallenge, L_UINT64 nParameter)
{
   UNREFERENCED_PARAMETER(nParameter);
   *pChallenge = GetRandom();
   return 0;
}
L_UINT32  LMyDicomNetExt::InternalAuthenticateISCL(L_UINT64 nChallenge, L_UINT64 *pResponse, L_UINT64 nParameter)
{
   UNREFERENCED_PARAMETER(nParameter);
   *pResponse = nChallenge + 1;
   return 0;
}
L_UINT32  LMyDicomNetExt::ExternalAuthenticateISCL(L_UINT64 nChallenge, L_UINT64 nResponse, L_UINT64 nParameter)
{
   UNREFERENCED_PARAMETER(nParameter);
   if (nResponse == nChallenge + 1)
      return 0;
   else
      return 1;
}
L_VOID LMyDicomNetExt::OnReceive (L_INT nError, L_UCHAR nType, L_UCHAR *pBuffer, L_UINT32 nBytes)
{
UNREFERENCED_PARAMETER(pBuffer);
UNREFERENCED_PARAMETER(nBytes);
UNREFERENCED_PARAMETER(nType);
   if (nError == DICOM_ERROR_ISCL_MSG_TRANSMISSION)
   {
      L_UINT32 nErrorStatus, nErrorCode;
      nErrorStatus = GetStatusISCL();
      nErrorCode = GetErrorSecure();
      // usually GetErrorSecure is the same as the nError parameter. However, the internal error code keeps 
      // its value until another error happens and set it to another value.
      // Even when nError is DICOM_SUCCESS, the GetErrorSecure will return the last error code generated
      if(nErrorStatus == 57)
      {
         CString strTmp;
         // I know that the message transmission request was refused
         L_UINT32 nMutualAuthIndex, nEncryptIndex, nRequestedMessageLength;
         nMutualAuthIndex = GetIndexForMutualAuthISCL();
         nEncryptIndex = GetIndexForEncryptISCL();
         nRequestedMessageLength = GetPeerRequestedMessageLengthISCL();
         strTmp.Format(TEXT("Error during receive\n Current auth index:%d\nCurrent encryption index %d\nPeer requested message length %d\n"));
         AfxMessageBox(strTmp);
      }
   }
};