DWORD VmwDeployGetHostname( PSTR* ppszHostname ) { DWORD dwError = 0; CHAR szHostname[HOST_NAME_MAX + 1] = ""; PSTR pszHostname = NULL; if (gethostname(szHostname, sizeof(szHostname)-1) < 0) { dwError = LwErrnoToWin32Error(errno); BAIL_ON_DEPLOY_ERROR(dwError); } dwError = VmwDeployAllocateStringA(szHostname, &pszHostname); BAIL_ON_DEPLOY_ERROR(dwError); *ppszHostname = pszHostname; cleanup: return dwError; error: *ppszHostname = NULL; goto cleanup; }
static DWORD VmwDeployGetVmDirConfigPath( PSTR* ppszPath ) { DWORD dwError = 0; PSTR pszPath = NULL; dwError = VmwDeployAllocateStringA( VMDIR_CONFIG_PATH, &pszPath); BAIL_ON_DEPLOY_ERROR(dwError); *ppszPath = pszPath; cleanup: return dwError; error: *ppszPath = NULL; goto cleanup; }
DWORD VmwDeployGetPartnerSiteName( PCSTR pszServer, PSTR* ppszSite ) { DWORD dwError = 0; PSTR pszVmDirSite = NULL; PSTR pszSite = NULL; if (IsNullOrEmptyString(pszServer)) { dwError = ERROR_INVALID_PARAMETER; BAIL_ON_DEPLOY_ERROR(dwError); } dwError = VmDirGetPartnerSiteName(pszServer, &pszVmDirSite); BAIL_ON_DEPLOY_ERROR(dwError); dwError = VmwDeployAllocateStringA(pszVmDirSite, &pszSite); BAIL_ON_DEPLOY_ERROR(dwError); *ppszSite = pszSite; cleanup: if (pszVmDirSite) { VmDirFreeMemory(pszVmDirSite); } return dwError; error: if (ppszSite) { *ppszSite = NULL; } goto cleanup; }
static DWORD VmwDeployBuildParams( PCSTR pszDomain, PCSTR pszUsername, PCSTR pszPassword, PCSTR pszPartner, PCSTR pszSite, PCSTR pszSubjectAltName, PCSTR pszParentDomain, PCSTR pszParentDC, PCSTR pszParentUserName, PCSTR pszParentPassword, PVMW_IC_SETUP_PARAMS* ppSetupParams ) { DWORD dwError = 0; PVMW_IC_SETUP_PARAMS pSetupParams = NULL; PSTR pszPassword1 = NULL; PSTR pszHostname = NULL; dwError = VmwDeployAllocateMemory( sizeof(*pSetupParams), (VOID*)&pSetupParams); BAIL_ON_DEPLOY_ERROR(dwError); if (IsNullOrEmptyString(pszPartner)) { pSetupParams->dir_svc_mode = VMW_DIR_SVC_MODE_STANDALONE; } else { pSetupParams->dir_svc_mode = VMW_DIR_SVC_MODE_PARTNER; dwError = VmwDeployAllocateStringA( pszPartner, &pSetupParams->pszServer); BAIL_ON_DEPLOY_ERROR(dwError); } dwError = VmwDeployGetHostname(&pszHostname); BAIL_ON_DEPLOY_ERROR(dwError); if (IsNullOrEmptyString(pszDomain)) { pszDomain = VMW_DEFAULT_DOMAIN_NAME; } if (!strchr(pszHostname, '.')) { dwError = VmwDeployAllocateStringPrintf( &pSetupParams->pszHostname, "%s.%s", pszHostname, pszDomain); BAIL_ON_DEPLOY_ERROR(dwError); } else { dwError = VmwDeployAllocateStringA( pszHostname, &pSetupParams->pszHostname); BAIL_ON_DEPLOY_ERROR(dwError); } if (!pszUsername) { pszUsername = VMW_ADMIN_NAME; } if (IsNullOrEmptyString(pszPassword)) { dwError = VmwDeployReadPassword( pszUsername, pszDomain, &pszPassword1); BAIL_ON_DEPLOY_ERROR(dwError); pszPassword = pszPassword1; } if (!IsNullOrEmptyString(pszSubjectAltName)) { dwError = VmwDeployAllocateStringA( pszSubjectAltName, &pSetupParams->pszSubjectAltName); BAIL_ON_DEPLOY_ERROR(dwError); } dwError = VmwDeployAllocateStringA(pszDomain, &pSetupParams->pszDomainName); BAIL_ON_DEPLOY_ERROR(dwError); dwError = VmwDeployAllocateStringA(pszUsername, &pSetupParams->pszUsername); BAIL_ON_DEPLOY_ERROR(dwError); dwError = VmwDeployAllocateStringA(pszPassword, &pSetupParams->pszPassword); BAIL_ON_DEPLOY_ERROR(dwError); if (pszSite) { dwError = VmwDeployAllocateStringA(pszSite, &pSetupParams->pszSite); BAIL_ON_DEPLOY_ERROR(dwError); } if (pszParentDomain) { dwError = VmwDeployAllocateStringA(pszParentDomain, &pSetupParams->pszParentDomainName); BAIL_ON_DEPLOY_ERROR(dwError); } if (pszParentDC) { dwError = VmwDeployAllocateStringA(pszParentDC, &pSetupParams->pszParentDC); BAIL_ON_DEPLOY_ERROR(dwError); } if (pszParentUserName) { dwError = VmwDeployAllocateStringA(pszParentUserName, &pSetupParams->pszParentUserName); BAIL_ON_DEPLOY_ERROR(dwError); } if (pszParentPassword) { dwError = VmwDeployAllocateStringA(pszParentPassword, &pSetupParams->pszParentPassword); BAIL_ON_DEPLOY_ERROR(dwError); } *ppSetupParams = pSetupParams; cleanup: if (pszPassword1) { VmwDeployFreeMemory(pszPassword1); } if (pszHostname) { VmwDeployFreeMemory(pszHostname); } return dwError; error: *ppSetupParams = NULL; if (pSetupParams) { VmwDeployFreeSetupParams(pSetupParams); } goto cleanup; }
static DWORD VmwDeployBuildParams( PCSTR pszUsername, PCSTR pszPassword, PCSTR pszSite, PVMW_IC_SETUP_PARAMS* ppSetupParams ) { DWORD dwError = 0; PVMW_IC_SETUP_PARAMS pSetupParams = NULL; PSTR pszPassword1 = NULL; dwError = VmwDeployAllocateMemory( sizeof(*pSetupParams), (VOID*)&pSetupParams); BAIL_ON_DEPLOY_ERROR(dwError); if (IsNullOrEmptyString(pszUsername)) { pszUsername = VMW_ADMIN_NAME; } if (IsNullOrEmptyString(pszPassword)) { dwError = VmwDeployReadPassword( pszUsername, NULL, &pszPassword1); BAIL_ON_DEPLOY_ERROR(dwError); pszPassword = pszPassword1; } dwError = VmwDeployAllocateStringA(pszUsername, &pSetupParams->pszUsername); BAIL_ON_DEPLOY_ERROR(dwError); dwError = VmwDeployAllocateStringA(pszPassword, &pSetupParams->pszPassword); BAIL_ON_DEPLOY_ERROR(dwError); if (!IsNullOrEmptyString(pszSite)) { dwError = VmwDeployAllocateStringA(pszSite, &pSetupParams->pszSite); BAIL_ON_DEPLOY_ERROR(dwError); } else { pSetupParams->pszSite = NULL; } *ppSetupParams = pSetupParams; cleanup: if (pszPassword1) { VmwDeployFreeMemory(pszPassword1); } return dwError; error: *ppSetupParams = NULL; if (pSetupParams) { VmwDeployFreeSetupParams(pSetupParams); } goto cleanup; }