本文整理汇总了C++中VMDIR_LOG_ERROR函数的典型用法代码示例。如果您正苦于以下问题:C++ VMDIR_LOG_ERROR函数的具体用法?C++ VMDIR_LOG_ERROR怎么用?C++ VMDIR_LOG_ERROR使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了VMDIR_LOG_ERROR函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: VmDirComputeMessageDigest
DWORD
VmDirComputeMessageDigest(
const EVP_MD* digestMethod,
const unsigned char* pData,
size_t dataSize,
unsigned char** ppMD,
size_t* pMDSize
)
{
DWORD dwError = 0;
EVP_MD_CTX mdCtx = {0};
unsigned char md[EVP_MAX_MD_SIZE] = {0};
unsigned int mdSize = 0;
unsigned char* pMD = NULL;
if (!digestMethod || !pData || !ppMD || !pMDSize)
{
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_INVALID_PARAMETER);
}
EVP_MD_CTX_init(&mdCtx);
if (EVP_DigestInit_ex(&mdCtx, digestMethod, NULL) == 0)
{
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "%s: EVP_DigestInit_ex returned 0", __FUNCTION__);
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_SSL);
}
if (EVP_DigestUpdate(&mdCtx, pData, dataSize) == 0)
{
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "%s: EVP_DigestUpdate returned 0", __FUNCTION__);
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_SSL);
}
if (EVP_DigestFinal_ex(&mdCtx, md, &mdSize) == 0)
{
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "%s: EVP_DigestFinal_ex returned 0", __FUNCTION__);
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_SSL);
}
dwError = VmDirAllocateAndCopyMemory(md, mdSize, (PVOID*)&pMD);
BAIL_ON_VMDIR_ERROR(dwError);
*ppMD = pMD;
*pMDSize = mdSize;
cleanup:
EVP_MD_CTX_cleanup(&mdCtx);
return dwError;
error:
VMDIR_LOG_ERROR(
VMDIR_LOG_MASK_ALL,
"%s failed with error (%d)",
__FUNCTION__,
dwError);
VMDIR_SAFE_FREE_MEMORY(pMD);
goto cleanup;
}
示例2: VmDirPerformRename
int
VmDirPerformRename(
PVDIR_OPERATION pOperation
)
{
ModifyReq * modReq = &(pOperation->request.modifyReq);
int retVal = LDAP_SUCCESS;
PVDIR_LDAP_RESULT pResult = &(pOperation->ldapResult);
ber_len_t size = 0;
PSTR pszLocalErrorMsg = NULL;
if (!_VmDirIsRenameSupported())
{
pResult->errCode = retVal = LDAP_UNWILLING_TO_PERFORM;
BAIL_ON_VMDIR_ERROR_WITH_MSG( retVal, pszLocalErrorMsg, "Operation is not enabled on this server or is not supported at this domain fuctional level.");
}
// Get entry DN. 'm' => reqDn.bv_val points to DN within (in-place) ber
if ( ber_scanf( pOperation->ber, "{mmb", &modReq->dn, &modReq->newrdn, &modReq->bDeleteOldRdn) == LBER_ERROR )
{
VMDIR_LOG_ERROR( LDAP_DEBUG_ARGS, "VmDirPerformRename: ber_scanf failed" );
pResult->errCode = LDAP_PROTOCOL_ERROR;
retVal = LDAP_NOTICE_OF_DISCONNECT;
BAIL_ON_VMDIR_ERROR_WITH_MSG( retVal, (pszLocalErrorMsg),
"Decoding error while parsing the target DN");
}
if (ber_peek_tag(pOperation->ber, &size) == LDAP_TAG_NEWSUPERIOR)
{
if ( ber_scanf(pOperation->ber, "m", &modReq->newSuperior ) == LBER_ERROR ) {
pResult->errCode = LDAP_PROTOCOL_ERROR;
retVal = LDAP_NOTICE_OF_DISCONNECT; BAIL_ON_VMDIR_ERROR_WITH_MSG( retVal, (pszLocalErrorMsg), "Decoding error while parsing newSuperior");
}
}
if ( ber_scanf( pOperation->ber, "}") == LBER_ERROR )
{
VMDIR_LOG_ERROR( LDAP_DEBUG_ARGS, "PerformRename: ber_scanf failed" );
pResult->errCode = LDAP_PROTOCOL_ERROR;
retVal = LDAP_NOTICE_OF_DISCONNECT;
BAIL_ON_VMDIR_ERROR_WITH_MSG( retVal, (pszLocalErrorMsg), "Decoding error while parsing the end of message.");
}
retVal = pResult->errCode = VmDirMLModify( pOperation );
BAIL_ON_VMDIR_ERROR(retVal);
cleanup:
if (retVal != LDAP_NOTICE_OF_DISCONNECT)
{
VmDirSendLdapResult( pOperation );
}
VMDIR_SAFE_FREE_MEMORY(pszLocalErrorMsg);
return retVal;
error:
VMDIR_APPEND_ERROR_MSG(pResult->pszErrMsg, pszLocalErrorMsg);
goto cleanup;
}
示例3: VmDirWriteQueuePush
DWORD
VmDirWriteQueuePush(
PVDIR_BACKEND_CTX pBECtx,
PVMDIR_WRITE_QUEUE pWriteQueue,
PVMDIR_WRITE_QUEUE_ELEMENT pWriteQueueEle
)
{
int dbRetVal = 0;
USN localUsn = 0;
DWORD dwError = 0;
BOOLEAN bInLock = FALSE;
if (!pBECtx || !pWriteQueue || !pWriteQueueEle)
{
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_INVALID_PARAMETER);
}
if (pBECtx->wTxnUSN != 0)
{
VMDIR_LOG_ERROR(
VMDIR_LOG_MASK_ALL,
"%s: acquiring multiple usn in same operation context, USN: %" PRId64,
__FUNCTION__,
pBECtx->wTxnUSN);
BAIL_WITH_VMDIR_ERROR(dwError, LDAP_OPERATIONS_ERROR);
}
VMDIR_LOCK_MUTEX(bInLock, gVmDirServerOpsGlobals.pMutex);
if ((dbRetVal = pBECtx->pBE->pfnBEGetNextUSN(pBECtx, &localUsn)) != 0)
{
VMDIR_LOG_ERROR(
VMDIR_LOG_MASK_ALL,
"%s: pfnBEGetNextUSN failed with error code: %d",
__FUNCTION__,
dbRetVal);
BAIL_WITH_VMDIR_ERROR(dwError, LDAP_OPERATIONS_ERROR);
}
pWriteQueueEle->usn = localUsn;
dwError = VmDirLinkedListInsertTail(
pWriteQueue->pList,
(PVOID) pWriteQueueEle,
NULL);
BAIL_ON_VMDIR_ERROR(dwError);
VMDIR_LOG_INFO(LDAP_DEBUG_WRITE_QUEUE, "%s: usn: %"PRId64, __FUNCTION__, localUsn);
cleanup:
VMDIR_UNLOCK_MUTEX(bInLock, gVmDirServerOpsGlobals.pMutex);
return dwError;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "failed, error (%d) localUsn %"PRId64, dwError, localUsn);
goto cleanup;
}
示例4: WritePagedSearchDoneControl
int
WritePagedSearchDoneControl(
VDIR_OPERATION * op,
BerElement * ber
)
{
int retVal = LDAP_OPERATIONS_ERROR;
BerElementBuffer ctrlValBerbuf;
BerElement * ctrlValBer = (BerElement *) &ctrlValBerbuf;
VDIR_BERVALUE bvCtrlVal = VDIR_BERVALUE_INIT;
if (!op || !op->showPagedResultsCtrl)
{
retVal = LDAP_PROTOCOL_ERROR;
BAIL_ON_VMDIR_ERROR( retVal );
}
if ( op->showPagedResultsCtrl)
{
VDIR_PAGED_RESULT_CONTROL_VALUE* prCtrlVal = &op->showPagedResultsCtrl->value.pagedResultCtrlVal;
VMDIR_LOG_DEBUG( LDAP_DEBUG_TRACE,
"WritePagedSearchDoneControl: Paged Search Done Control Value: pageSize[%d] cookie[%s]",
prCtrlVal->pageSize,
prCtrlVal->cookie );
(void) memset( (char *)&ctrlValBerbuf, '\0', sizeof( BerElementBuffer ));
ber_init2( ctrlValBer, NULL, LBER_USE_DER );
if (ber_printf( ctrlValBer, "{is}", 0, prCtrlVal->cookie) == -1 )
{
VMDIR_LOG_ERROR( VMDIR_LOG_MASK_ALL, "SendLdapResult: ber_printf (to print Paged Search Done Control ...) failed" );
retVal = LDAP_OPERATIONS_ERROR;
BAIL_ON_VMDIR_ERROR( retVal );
}
bvCtrlVal.lberbv.bv_val = ctrlValBer->ber_buf;
bvCtrlVal.lberbv.bv_len = ctrlValBer->ber_ptr - ctrlValBer->ber_buf;
if (ber_printf(ber, "t{{sO}}", LDAP_TAG_CONTROLS, LDAP_CONTROL_PAGEDRESULTS, &bvCtrlVal.lberbv ) == -1)
{
VMDIR_LOG_ERROR( VMDIR_LOG_MASK_ALL, "WritePagedSearchDoneControl: ber_printf (to print Search Done Control ...) failed" );
retVal = LDAP_OPERATIONS_ERROR;
BAIL_ON_VMDIR_ERROR( retVal );
}
}
retVal = LDAP_SUCCESS;
cleanup:
ber_free_buf( ctrlValBer );
return retVal;
error:
goto cleanup;
}
示例5: VmDirLogSearchRequest
DWORD
VmDirLogSearchRequest(
SearchReq* pSReq,
ber_len_t iNumAttr
)
{
DWORD dwError = 0;
PSTR pszLogMsg = NULL;
size_t currLen = 0;
size_t msgSize = 0;
int iCnt = 0;
assert(pSReq);
for ( iCnt = 0, msgSize = 0; iCnt<iNumAttr; iCnt++ )
{
msgSize += pSReq->attrs[iCnt].lberbv.bv_len + 2 /* for a ',' and ' ' */;
}
dwError = VmDirAllocateMemory( msgSize + 1, (PVOID *)&pszLogMsg );
BAIL_ON_VMDIR_ERROR(dwError);
for ( iCnt = 0, currLen = 0; iCnt<iNumAttr; iCnt++ )
{
VmDirStringNPrintFA( pszLogMsg + currLen, (msgSize + 1 - currLen), msgSize, "%s, ", pSReq->attrs[iCnt].lberbv.bv_val);
currLen += pSReq->attrs[iCnt].lberbv.bv_len + 2;
}
pszLogMsg[currLen - 2] = '\0';
VMDIR_LOG_VERBOSE( LDAP_DEBUG_ARGS, " Required attributes: %s", pszLogMsg );
cleanup:
VMDIR_SAFE_FREE_MEMORY( pszLogMsg );
return dwError;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL,
"VmDirLogSearchRequest: dwError: %lu, msgSize: %lu, iNumAttr: %lu",
dwError, msgSize, iNumAttr);
for ( iCnt = 0; iCnt<iNumAttr; iCnt++ )
{
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL,
" attr[%d] len: %lu, val: \"%.*s\"",
iCnt, pSReq->attrs[iCnt].lberbv.bv_len, 256,
VDIR_SAFE_STRING(pSReq->attrs[iCnt].lberbv.bv_val));
}
goto cleanup;
}
示例6: WriteConsistencyWriteDoneControl
/* Generates the LdapControl to be communicated to the client
in the case of Strong Consistency Write task */
int
WriteConsistencyWriteDoneControl(
VDIR_OPERATION * pOp,
BerElement * pBer
)
{
int retVal = LDAP_OPERATIONS_ERROR;
BerElementBuffer ctrlValBerbuf;
BerElement * pCtrlValBer = (BerElement *) &ctrlValBerbuf;
VDIR_BERVALUE bvCtrlVal = VDIR_BERVALUE_INIT;
DWORD dwStatus = 0;
PSTR pControlsString = NULL;
if (pOp == NULL || pBer == NULL)
{
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "WriteConsistencyWriteDoneControl: VDIR_OPERATION or BerElement is NULL failed");
BAIL_ON_VMDIR_ERROR(retVal);
}
(void) memset((char *)&ctrlValBerbuf, '\0', sizeof(BerElementBuffer));
ber_init2(pCtrlValBer, NULL, LBER_USE_DER);
dwStatus = pOp->strongConsistencyWriteCtrl->value.scwDoneCtrlVal.status;
pControlsString = pOp->strongConsistencyWriteCtrl->type;
if (ber_printf(pCtrlValBer, "{i}", dwStatus) == -1)
{
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "WriteConsistencyWriteDoneControl: ber_printf (to print status...) failed");
BAIL_ON_VMDIR_ERROR(retVal);
}
bvCtrlVal.lberbv.bv_val = pCtrlValBer->ber_buf;
bvCtrlVal.lberbv.bv_len = pCtrlValBer->ber_ptr - pCtrlValBer->ber_buf;
if (ber_printf(pBer, "t{{sO}}", LDAP_TAG_CONTROLS, pControlsString, &bvCtrlVal.lberbv) == -1)
{
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "WriteConsistencyWriteDoneControl: ber_printf (to print ldapControl...) failed");
BAIL_ON_VMDIR_ERROR(retVal);
}
retVal = LDAP_SUCCESS;
cleanup:
ber_free_buf(pCtrlValBer);
return retVal;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "WriteConsistencyWriteDoneControl: failed");
goto cleanup;
}
示例7: VmDirRESTAuthTokenInit
DWORD
VmDirRESTAuthTokenInit(
PVDIR_REST_AUTH_TOKEN* ppAuthToken
)
{
DWORD dwError = 0;
PVDIR_REST_AUTH_TOKEN pAuthToken = NULL;
if (!ppAuthToken)
{
dwError = VMDIR_ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
dwError = VmDirAllocateMemory(
sizeof(VDIR_REST_AUTH_TOKEN), (PVOID*)&pAuthToken);
BAIL_ON_VMDIR_ERROR(dwError);
*ppAuthToken = pAuthToken;
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR(
VMDIR_LOG_MASK_ALL,
"%s failed, error (%d)",
__FUNCTION__,
dwError);
VmDirFreeRESTAuthToken(pAuthToken);
goto cleanup;
}
示例8: _VmDirDeadlockDetectionVectorPairToStr
static
DWORD
_VmDirDeadlockDetectionVectorPairToStr(
LW_HASHMAP_PAIR pair,
BOOLEAN bStart,
PSTR* ppOutStr
)
{
PSTR pszTempStr = NULL;
DWORD dwError = 0;
VMDIR_LOG_INFO(LDAP_DEBUG_REPL, "%s: key: %s value: %d", (PSTR)pair.pKey, *(PDWORD)pair.pValue);
if (bStart)
{
dwError = VmDirAllocateStringPrintf(&pszTempStr, "vector:%s:%d", pair.pKey, *(PDWORD)pair.pValue);
BAIL_ON_VMDIR_ERROR(dwError);
}
else
{
dwError = VmDirAllocateStringPrintf(&pszTempStr, ",%s:%d", pair.pKey, *(PDWORD)pair.pValue);
BAIL_ON_VMDIR_ERROR(dwError);
}
*ppOutStr = pszTempStr;
pszTempStr = NULL;
cleanup:
VMDIR_SAFE_FREE_MEMORY(pszTempStr);
return dwError;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "failed, error (%d)", dwError);
goto cleanup;
}
示例9: VmDirDDVectorInit
DWORD
VmDirDDVectorInit(
VOID
)
{
DWORD dwError = 0;
dwError = VmDirAllocateMemory(
sizeof(VMDIR_REPL_DEADLOCKDETECTION_VECTOR),
(PVOID*)&gVmdirServerGlobals.pReplDeadlockDetectionVector);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = LwRtlCreateHashMap(
&gVmdirServerGlobals.pReplDeadlockDetectionVector->pEmptyPageSentMap,
LwRtlHashDigestPstrCaseless,
LwRtlHashEqualPstrCaseless,
NULL);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateMutex(
&gVmdirServerGlobals.pReplDeadlockDetectionVector->pMutex);
BAIL_ON_VMDIR_ERROR(dwError);
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "failed, error (%d)", dwError);
goto cleanup;
}
示例10: _VmDirCollectBindSuperLog
static
VOID
_VmDirCollectBindSuperLog(
PVDIR_CONNECTION pConn,
PVDIR_OPERATION pOp
)
{
DWORD dwError = 0;
pConn->SuperLogRec.iEndTime = VmDirGetTimeInMilliSec();
if (pOp->reqDn.lberbv.bv_val) // TODO, for failed SASL bind scenario, we need DN/UPN a well.
{
dwError = VmDirAllocateStringA(pOp->reqDn.lberbv.bv_val, &(pConn->SuperLogRec.pszBindID));
BAIL_ON_VMDIR_ERROR(dwError);
}
VmDirLogOperation(gVmdirGlobals.pLogger, LDAP_REQ_BIND, pConn, pOp->ldapResult.errCode);
//
// Flush times once we log.
//
pConn->SuperLogRec.iStartTime = pConn->SuperLogRec.iEndTime = 0;
cleanup:
return;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "%s failed, error code %d", __FUNCTION__, dwError);
goto cleanup;
}
示例11: VmDirDDVectorUpdate
DWORD
VmDirDDVectorUpdate(
PCSTR pszInvocationId,
DWORD dwValue
)
{
DWORD dwError = 0;
BOOLEAN bInLock = FALSE;
dwError = VmDirAllocateStringA(
pszInvocationId,
&gVmdirServerGlobals.pReplDeadlockDetectionVector->pszInvocationId);
BAIL_ON_VMDIR_ERROR(dwError);
VMDIR_LOCK_MUTEX(bInLock, gVmdirServerGlobals.pReplDeadlockDetectionVector->pMutex);
dwError = _VmDirDDVectorUpdateInLock(dwValue);
BAIL_ON_VMDIR_ERROR(dwError);
cleanup:
VMDIR_UNLOCK_MUTEX(bInLock, gVmdirServerGlobals.pReplDeadlockDetectionVector->pMutex);
return dwError;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "failed, error (%d)", dwError);
goto cleanup;
}
示例12: VmDirBackupDB
/*
* API to backup database at the server side
*/
DWORD
VmDirBackupDB(
PVMDIR_SERVER_CONTEXT hServer,
PCSTR pszBackupPath
)
{
DWORD dwError = 0;
if (!hServer || !hServer->hBinding ||
IsNullOrEmptyString(pszBackupPath))
{
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_INVALID_PARAMETER);
}
dwError = _VmDirBackupDBRInternal(hServer, pszBackupPath);
BAIL_ON_VMDIR_ERROR(dwError);
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL,
"%s failed. Error[%d]\n", __FUNCTION__, dwError);
goto cleanup;
}
示例13: VmDirMDBDNToEntry
/* VmDirMDBDNToEntry: For a given entry DN, reads an entry from the entry DB.
*
* Returns: BE error - BACKEND_ERROR, BACKEND OPERATIONS, BACKEND_ENTRY_NOTFOUND
*
*/
DWORD
VmDirMDBDNToEntry(
PVDIR_BACKEND_CTX pBECtx,
PVDIR_SCHEMA_CTX pSchemaCtx,
VDIR_BERVALUE* pDn,
PVDIR_ENTRY pEntry,
VDIR_BACKEND_ENTRY_LOCKTYPE entryLockType)
{
DWORD dwError = LDAP_SUCCESS;
ENTRYID eId = {0};
// make sure we look up normalized dn value
dwError = VmDirNormalizeDN( pDn, pSchemaCtx );
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirMDBDNToEntryId( pBECtx, pDn, &eId );
BAIL_ON_VMDIR_ERROR( dwError );
dwError = VmDirMDBEIdToEntry( pBECtx, pSchemaCtx, eId, pEntry, entryLockType );
BAIL_ON_VMDIR_ERROR( dwError );
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR( LDAP_DEBUG_BACKEND, "BEDNToEntry DN (%s) failed, (%u)(%s)",
VDIR_SAFE_STRING( pDn->bvnorm_val), dwError, VDIR_SAFE_STRING(pBECtx->pszBEErrorMsg) );
VMDIR_SET_BACKEND_ERROR(dwError); // if dwError no in BE space, set to ERROR_BACKEND_ERROR
goto cleanup;
}
示例14: VmDirLdapOcAreCompat
DWORD
VmDirLdapOcAreCompat(
PVDIR_LDAP_OBJECT_CLASS pPrevOc,
PVDIR_LDAP_OBJECT_CLASS pNewOc
)
{
DWORD dwError = 0;
if (!pPrevOc || !pNewOc)
{
dwError = ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
if (!VMDIR_TWO_STRING_COMPATIBLE(
pNewOc->pszName, pPrevOc->pszName) ||
!VMDIR_TWO_STRING_COMPATIBLE(
pNewOc->pszSup, pPrevOc->pszSup) ||
!VmDirIsStrArrayIdentical(
pNewOc->ppszMust, pPrevOc->ppszMust) ||
!VmDirIsStrArraySuperSet(
pNewOc->ppszMay, pPrevOc->ppszMay) ||
pNewOc->type != pPrevOc->type)
{
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL,
"%s: cannot accept backward incompatible defn (%s).",
__FUNCTION__, pPrevOc->pszName);
dwError = VMDIR_ERROR_SCHEMA_NOT_COMPATIBLE;
BAIL_ON_VMDIR_ERROR(dwError);
}
error:
return dwError;
}
示例15: VmDirWriteQueueElementAllocate
DWORD
VmDirWriteQueueElementAllocate(
PVMDIR_WRITE_QUEUE_ELEMENT* ppWriteQueueEle
)
{
DWORD dwError = 0;
PVMDIR_WRITE_QUEUE_ELEMENT pWriteQueueEleLocal = NULL;
if (!ppWriteQueueEle)
{
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_INVALID_PARAMETER);
}
dwError = VmDirAllocateMemory(sizeof(VMDIR_WRITE_QUEUE_ELEMENT), (PVOID)&pWriteQueueEleLocal);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateCondition(&pWriteQueueEleLocal->pCond);
BAIL_ON_VMDIR_ERROR(dwError);
*ppWriteQueueEle = pWriteQueueEleLocal;
pWriteQueueEleLocal = NULL;
cleanup:
return dwError;
error:
VmDirWriteQueueElementFree(pWriteQueueEleLocal);
pWriteQueueEleLocal = NULL;
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "failed, error (%d)", dwError);
goto cleanup;
}