VOID VmDnsCliFreeContext( PVM_DNS_CLI_CONTEXT pContext ) { if (pContext->pszZone) { VmDnsFreeStringA(pContext->pszZone); } if (pContext->pszNSHost) { VmDnsFreeStringA(pContext->pszNSHost); } if (pContext->pszNSIp) { VmDnsFreeStringA(pContext->pszNSIp); } if (pContext->pszMboxDomain) { VmDnsFreeStringA(pContext->pszMboxDomain); } if (pContext->pszForwarder) { VmDnsFreeStringA(pContext->pszForwarder); } if (pContext->pServerContext) { VmDnsCloseServer(pContext->pServerContext); } VmDnsClearRecord(&pContext->record); VmDnsFreeMemory(pContext); }
DWORD VmDnsCopyPtrRecord( PVMDNS_RECORD pSrc, PVMDNS_RECORD pDest ) { DWORD dwError = 0; PVMDNS_PTR_DATAA pData = NULL; pData = &pDest->Data.PTR; VmDnsAllocateStringA(pSrc->pszName, &pDest->pszName); BAIL_ON_VMDNS_ERROR(dwError); pDest->iClass = pSrc->iClass; pDest->dwTtl = pSrc->dwTtl; pDest->dwType = pSrc->dwType; VmDnsAllocateStringA(pSrc->Data.PTR.pNameHost, &pData->pNameHost); BAIL_ON_VMDNS_ERROR(dwError); cleanup: return dwError; error: if (pDest) { VmDnsClearRecord(pDest); } goto cleanup; }
DWORD VmDnsRpcCopySrvRecord( PVMDNS_RECORD pSrc, PVMDNS_RECORD pDest ) { DWORD dwError = 0; PVMDNS_SRV_DATAA pData = NULL; pData = &pDest->Data.SRV; VmDnsRpcAllocateStringA(pSrc->pszName, &pDest->pszName); BAIL_ON_VMDNS_ERROR(dwError); pDest->iClass = pSrc->iClass; pDest->dwTtl = pSrc->dwTtl; pDest->dwType = pSrc->dwType; pData->wPort = pSrc->Data.SRV.wPort; pData->wPriority = pSrc->Data.SRV.wPriority; pData->wWeight = pSrc->Data.SRV.wWeight; VmDnsRpcAllocateStringA(pSrc->Data.SRV.pNameTarget, &pData->pNameTarget); BAIL_ON_VMDNS_ERROR(dwError); cleanup: return dwError; error: VmDnsClearRecord(pDest); goto cleanup; }
VOID VmDnsClearRecordArray( PVMDNS_RECORD_ARRAY pRecordArray ) { int i = 0; if (pRecordArray) { for (; i < pRecordArray->dwCount; ++i) { VmDnsClearRecord(&(pRecordArray->Records[i])); } } }
VMDNS_API VOID VmDnsFreeRecordArray( PVMDNS_RECORD_ARRAY pRecordArray ) { if (pRecordArray) { DWORD idx = 0; if (pRecordArray->Records) { for (; idx < pRecordArray->dwCount; ++idx) { VmDnsClearRecord(&pRecordArray->Records[idx]); } VmDnsFreeMemory(pRecordArray->Records); } VmDnsFreeMemory(pRecordArray); } }