windows-nt/Source/XPSP1/NT/termsrv/license/tlserver/server/errcode.cpp

101 lines
4.3 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+--------------------------------------------------------------------------
//
// Copyright (c) 1997-1999 Microsoft Corporation
//
// File: errcode.cpp
//
// Contents: Convert License Server error code to TLSAPI return code
//
// History:
//
//---------------------------------------------------------------------------
#include "pch.cpp"
#include "server.h"
#include "messages.h"
//+------------------------------------------------------------------------
// Function:
// LSMapReturnCode()
//
// Description:
// Map license server internal code to RPC return code
//
// Arguments:
// dwCode - license server internal code
//
// Return Value:
// RPC return code.
//
// Note:
// Internal routine within this file.
//-------------------------------------------------------------------------
DWORD
TLSMapReturnCode(DWORD dwCode)
{
static struct _TLSMapReturnCode {
DWORD dwErrCode;
DWORD dwReturnCode;
} MapReturnCode[] = {
{ERROR_SUCCESS, LSERVER_S_SUCCESS},
{TLS_I_SERVICE_STOP, LSERVER_I_SERVICE_SHUTDOWN},
{TLS_I_NO_MORE_DATA, LSERVER_I_NO_MORE_DATA},
{TLS_W_LICENSE_PROXIMATE, LSERVER_I_PROXIMATE_LICENSE},
{TLS_W_TEMPORARY_LICENSE_ISSUED, LSERVER_I_TEMPORARY_LICENSE},
{TLS_I_FOUND_TEMPORARY_LICENSE, LSERVER_I_TEMPORARY_LICENSE},
{TLS_E_INTERNAL, LSERVER_E_INTERNAL_ERROR},
{TLS_E_ACCESS_DENIED, LSERVER_E_ACCESS_DENIED},
{TLS_E_DUPLICATE_RECORD, LSERVER_E_DUPLICATE},
{TLS_E_SPKALREADYEXIST, LSERVER_E_DUPLICATE},
{ERROR_INVALID_HANDLE, LSERVER_E_INVALID_HANDLE},
{TLS_E_INVALID_SEQUENCE, LSERVER_E_INVALID_SEQUENCE},
{TLS_E_ALLOCATE_HANDLE, LSERVER_E_SERVER_BUSY},
{ERROR_OUTOFMEMORY, LSERVER_E_OUTOFMEMORY},
{TLS_E_INVALID_DATA, LSERVER_E_INVALID_DATA},
{ERROR_INVALID_DATA, LSERVER_E_INVALID_DATA},
{TLS_E_DECODE_LKP, LSERVER_E_INVALID_DATA},
{TLS_E_RECORD_NOTFOUND, LSERVER_E_DATANOTFOUND},
{TLS_E_SERVERLOOKUP, LSERVER_E_DATANOTFOUND},
{TLS_E_NO_LICENSE, LSERVER_E_NO_LICENSE},
{TLS_E_PRODUCT_NOTINSTALL, LSERVER_E_NO_PRODUCT},
//{TLS_E_LICENSE_REJECTED, LSERVER_E_LICENSE_REJECTED},
//{TLS_E_LICENSE_REVOKED, LSERVER_E_LICENSE_REVOKED},
{TLS_E_CORRUPT_DATABASE, LSERVER_E_CORRUPT_DATABASE},
{TLS_E_LICENSE_EXPIRED, LSERVER_E_LICENSE_EXPIRED},
{TLS_I_LICENSE_UPGRADED, LSERVER_I_LICENSE_UPGRADED},
{TLS_E_NOTSUPPORTED, LSERVER_E_NOTSUPPORTED},
{TLS_E_NO_CERTIFICATE, LSERVER_E_NO_CERTIFICATE},
{TLS_W_REMOVE_TOOMANY, LSERVER_I_REMOVE_TOOMANY},
{TLS_E_DECODE_KEYPACKBLOB, LSERVER_E_INVALID_DATA},
{TLS_W_SELFSIGN_CERTIFICATE, LSERVER_I_SELFSIGN_CERTIFICATE},
{TLS_W_TEMP_SELFSIGN_CERT, LSERVER_I_TEMP_SELFSIGN_CERT},
{TLS_E_CH_INSTALL_NON_LSCERTIFICATE, LSERVER_E_NOT_LSCERTIFICATE},
{TLS_E_POLICYMODULEERROR, LSERVER_E_POLICYMODULEERROR},
{TLS_E_POLICYMODULEEXCEPTION, LSERVER_E_POLICYMODULEERROR},
{TLS_E_INCOMPATIBLEVERSION, LSERVER_E_INCOMPATIBLE},
{TLS_E_INVALID_SPK, LSERVER_E_INVALID_SPK},
{TLS_E_INVALID_LKP, LSERVER_E_INVALID_LKP},
{TLS_E_SPK_INVALID_SIGN, LSERVER_E_INVALID_SIGN},
{TLS_E_LKP_INVALID_SIGN, LSERVER_E_INVALID_SIGN},
{TLS_E_NOPOLICYMODULE, LSERVER_E_NOPOLICYMODULE},
{TLS_E_POLICYERROR, LSERVER_E_POLICYDENYREQUEST}
};
static numMapReturnCode=sizeof(MapReturnCode)/sizeof(MapReturnCode[0]);
DWORD fStatus;
for(int i=0; i < numMapReturnCode && MapReturnCode[i].dwErrCode != dwCode; i++);
if(i >= numMapReturnCode)
{
fStatus = dwCode;
// DebugBreak();
}
else
{
fStatus = MapReturnCode[i].dwReturnCode;
}
return fStatus;
}