本文整理汇总了C++中LwAllocateStringPrintf函数的典型用法代码示例。如果您正苦于以下问题:C++ LwAllocateStringPrintf函数的具体用法?C++ LwAllocateStringPrintf怎么用?C++ LwAllocateStringPrintf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LwAllocateStringPrintf函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: KtLdapBind
static
DWORD
KtLdapBind(
LDAP **ppLd,
PCSTR pszDc
)
{
const int version = LDAP_VERSION3;
DWORD dwError = ERROR_SUCCESS;
int lderr = 0;
PSTR pszUrl = NULL;
LDAP *pLd = NULL;
dwError = LwAllocateStringPrintf(&pszUrl,
"ldap://%s",
pszDc);
BAIL_ON_LSA_ERROR(dwError);
lderr = ldap_initialize(&pLd,
pszUrl);
BAIL_ON_LDAP_ERROR(lderr);
lderr = ldap_set_option(pLd,
LDAP_OPT_PROTOCOL_VERSION,
&version);
BAIL_ON_LDAP_ERROR(lderr);
lderr = ldap_set_option(pLd,
LDAP_OPT_REFERRALS,
LDAP_OPT_OFF);
BAIL_ON_LDAP_ERROR(lderr);
dwError = LwLdapBindDirectorySasl(pLd, pszDc, FALSE);
BAIL_ON_LSA_ERROR(dwError);
*ppLd = pLd;
cleanup:
LW_SAFE_FREE_MEMORY(pszUrl);
if (dwError == ERROR_SUCCESS &&
lderr != LDAP_SUCCESS)
{
dwError = LwMapLdapErrorToLwError(lderr);
}
return dwError;
error:
if (pLd)
{
ldap_memfree(pLd);
}
*ppLd = NULL;
goto cleanup;
}
示例2: KtLdapGetSaltingPrincipalA
DWORD
KtLdapGetSaltingPrincipalA(
PCSTR pszDcName,
PCSTR pszBaseDn,
PCSTR pszMachAcctName,
PSTR *ppszSalt
)
{
PCSTR pszUpnAttr = "userPrincipalName";
PCSTR pszSamAcctAttr = "sAMAccountName";
DWORD dwError = ERROR_SUCCESS;
LDAP *pLd = NULL;
PSTR pszFilter = NULL;
PSTR pszUpn = NULL;
/* Bind to directory service on the DC */
dwError = KtLdapBind(&pLd, pszDcName);
BAIL_ON_LSA_ERROR(dwError);
/* Prepare ldap query filter */
dwError = LwAllocateStringPrintf(&pszFilter,
"(%s=%s)",
pszSamAcctAttr,
pszMachAcctName);
BAIL_ON_LSA_ERROR(dwError);
/* Look for key version number attribute */
dwError = KtLdapQuery(pLd,
pszBaseDn,
LDAP_SCOPE_SUBTREE,
pszFilter,
pszUpnAttr,
&pszUpn);
BAIL_ON_LSA_ERROR(dwError);
*ppszSalt = pszUpn;
cleanup:
/* Close connection to the directory */
if (pLd)
{
KtLdapUnbind(pLd);
}
LW_SAFE_FREE_MEMORY(pszFilter);
return dwError;
error:
LW_SAFE_FREE_MEMORY(pszUpn);
*ppszSalt = NULL;
goto cleanup;
}
示例3: LwpsLegacyGetJoinedDomainTrustEnumerationWaitTime
DWORD
LwpsLegacyGetJoinedDomainTrustEnumerationWaitTime(
IN PLWPS_LEGACY_STATE pContext,
IN OPTIONAL PCSTR pszDomainName,
OUT PDWORD* ppdwTrustEnumerationWaitSeconds,
OUT PDWORD* ppdwTrustEnumerationWaitEnabled
)
{
DWORD dwError = 0;
int EE = 0;
PSTR pszRegistryPath = NULL;
PVOID dwValue = NULL;
PVOID dwValue1 = NULL;
REG_DATA_TYPE readType = 0;
DWORD dwValueSize = 0;
DWORD dwValueSize1 = 0;
if (pszDomainName)
{
dwError = LwAllocateStringPrintf(
&pszRegistryPath,
"%s\\%s",
PSTOREDB_REGISTRY_AD_KEY,
pszDomainName);
GOTO_CLEANUP_ON_WINERROR_EE(dwError, EE);
dwError = RegUtilGetValue(
pContext->hReg,
HKEY_THIS_MACHINE,
pszRegistryPath,
NULL,
PSTOREDB_REGISTRY_TRUSTENUMERATIONWAIT_VALUE,
&readType,
&dwValue,
&dwValueSize);
GOTO_CLEANUP_ON_WINERROR_EE(dwError, EE);
dwError = RegUtilGetValue(
pContext->hReg,
HKEY_THIS_MACHINE,
pszRegistryPath,
NULL,
PSTOREDB_REGISTRY_TRUSTENUMERATIONWAITSECONDS_VALUE,
&readType,
&dwValue1,
&dwValueSize1);
GOTO_CLEANUP_ON_WINERROR_EE(dwError, EE);
*ppdwTrustEnumerationWaitSeconds = (PDWORD) dwValue1;
*ppdwTrustEnumerationWaitEnabled = (PDWORD) dwValue;
}
cleanup:
LW_SAFE_FREE_MEMORY(pszRegistryPath);
LSA_PSTORE_LOG_LEAVE_ERROR_EE(dwError, EE);
return dwError;
}
示例4: CleanupUsername
static
DWORD
CleanupUsername(
IN PCSTR pszDomain,
IN OUT PSTR* ppszUsername
)
{
DWORD dwError = 0;
PSTR pszOldUsername = *ppszUsername;
PSTR pszNewUsername = NULL;
// Fix up username and prompt for password, if needed.
if (pszOldUsername)
{
PSTR at = NULL;
if (strchr(pszOldUsername, '\\'))
{
fprintf(stderr,
"The USERNAME (%s) is not allowed to contain a backslash.\n",
pszOldUsername);
exit(1);
}
at = strchr(pszOldUsername, '@');
if (at)
{
LwStrToUpper(at);
}
else
{
dwError = LwAllocateStringPrintf(
&pszNewUsername,
"%[email protected]%s",
pszOldUsername,
pszDomain);
GOTO_CLEANUP_ON_WINERROR(dwError);
}
}
cleanup:
if (dwError)
{
LW_SAFE_FREE_MEMORY(pszNewUsername);
}
if (pszNewUsername)
{
LW_SAFE_FREE_MEMORY(*ppszUsername);
*ppszUsername = pszNewUsername;
}
return dwError;
}
示例5: LwpsLegacyDeletePassword
DWORD
LwpsLegacyDeletePassword(
IN PLWPS_LEGACY_STATE pContext,
IN PCSTR pszDomainName
)
{
DWORD dwError = 0;
int EE = 0;
PSTR pszRegistryPath = NULL;
DWORD dwSubKeysCount = 0;
DWORD dwValuesCount = 0;
dwError = LwAllocateStringPrintf(
&pszRegistryPath,
"%s\\%s",
PSTOREDB_REGISTRY_AD_KEY,
pszDomainName);
GOTO_CLEANUP_ON_WINERROR_EE(dwError, EE);
RegUtilDeleteTree(
pContext->hReg,
NULL,
pszRegistryPath,
PSTOREDB_REGISTRY_PSTORE_SUBKEY);
// TODO-What if there is an error?
/* Delete domain key only if empty */
dwError = RegUtilGetKeyObjectCounts(
pContext->hReg,
HKEY_THIS_MACHINE,
pszRegistryPath,
NULL,
&dwSubKeysCount,
&dwValuesCount);
if (dwError)
{
dwError = 0;
}
else if (!dwSubKeysCount && !dwValuesCount)
{
RegUtilDeleteKey(
pContext->hReg,
HKEY_THIS_MACHINE,
pszRegistryPath,
NULL);
// TODO-What if there is an error?
}
cleanup:
LW_SAFE_FREE_MEMORY(pszRegistryPath);
LSA_PSTORE_LOG_LEAVE_ERROR_EE(dwError, EE);
return dwError;
}
示例6: LwKrb5InitializeCredentials
DWORD
LwKrb5InitializeCredentials(
IN PCSTR pszUserPrincipalName,
IN PCSTR pszPassword,
IN PCSTR pszCachePath,
OUT OPTIONAL PDWORD pdwGoodUntilTime
)
{
DWORD dwError = LW_ERROR_SUCCESS;
DWORD dwGoodUntilTime = 0;
PSTR pszTempCachePath = NULL;
if (!pszCachePath)
{
dwError = ERROR_INVALID_PARAMETER;
BAIL_ON_LW_ERROR(dwError);
}
if (!strncmp(pszCachePath, "FILE:", sizeof("FILE:") - 1))
{
dwError = LwAllocateStringPrintf(&pszTempCachePath, "%s.new",
pszCachePath);
BAIL_ON_LW_ERROR(dwError);
}
dwError = LwKrb5GetTgt(
pszUserPrincipalName,
pszPassword,
pszTempCachePath ? pszTempCachePath : pszCachePath,
&dwGoodUntilTime);
BAIL_ON_LW_ERROR(dwError);
if (pszTempCachePath)
{
dwError = LwMoveFile(pszTempCachePath + sizeof("FILE:") - 1,
pszCachePath + sizeof("FILE:") - 1);
BAIL_ON_LW_ERROR(dwError);
}
error:
if (dwError)
{
dwGoodUntilTime = 0;
}
LW_SAFE_FREE_STRING(pszTempCachePath);
if (pdwGoodUntilTime)
{
*pdwGoodUntilTime = dwGoodUntilTime;
}
return dwError;
}
示例7: ADUSMBGetFolder
DWORD
ADUSMBGetFolder(
PSTR pszDomainName,
PSTR pszSourceFolder,
PSTR pszDestFolder
)
{
DWORD dwError = MAC_AD_ERROR_SUCCESS;
PSTR pszFQSrcPath = NULL;
PSTR pszDCHostname = NULL;
if (IsNullOrEmptyString(pszDomainName) ||
IsNullOrEmptyString(pszSourceFolder) ||
IsNullOrEmptyString(pszDestFolder))
{
dwError = MAC_AD_ERROR_INVALID_PARAMETER;
BAIL_ON_MAC_ERROR(dwError);
}
dwError = GetPreferredDCAddress(
pszDomainName,
&pszDCHostname);
BAIL_ON_MAC_ERROR(dwError);
dwError = LwCreateDirectory(
pszDestFolder,
S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
BAIL_ON_MAC_ERROR(dwError);
dwError = LwAllocateStringPrintf(
&pszFQSrcPath,
"//%s/sysvol/%s",
pszDCHostname,
*pszSourceFolder == '/' ? pszSourceFolder+1 : pszSourceFolder);
BAIL_ON_MAC_ERROR(dwError);
LOG("Calling ADUSMBGetFolder(Src:%s, Dest:%s)", pszFQSrcPath, pszDestFolder);
dwError = ADUCopyDirFromRemote(
pszFQSrcPath,
pszDestFolder);
BAIL_ON_MAC_ERROR(dwError);
cleanup:
LW_SAFE_FREE_STRING( pszFQSrcPath );
LW_SAFE_FREE_STRING(pszDCHostname);
return dwError;
error:
goto cleanup;
}
示例8: LsaSELinuxManageHomeDir
DWORD
LsaSELinuxManageHomeDir(
PCSTR pszHomeDir
)
{
DWORD dwError = 0;
PCSTR pszSemanageFormat = "semanage fcontext -a -e /home %s";
PSTR pszRootHomeDir = NULL;
PSTR pszSemanageExecute = NULL;
int systemresult = 0;
dwError = LsaGetDirectoryFromPath(pszHomeDir, &pszRootHomeDir);
BAIL_ON_LSA_ERROR(dwError);
if (LW_IS_NULL_OR_EMPTY_STR(pszRootHomeDir))
{
dwError = LW_ERROR_INVALID_PREFIX_PATH;
BAIL_ON_LSA_ERROR(dwError);
}
if (pszRootHomeDir[0] != '/')
{
dwError = LW_ERROR_INVALID_PREFIX_PATH;
BAIL_ON_LSA_ERROR(dwError);
}
if (pszRootHomeDir[1] == '\0')
{
dwError = LW_ERROR_INVALID_PREFIX_PATH;
BAIL_ON_LSA_ERROR(dwError);
}
dwError = LwAllocateStringPrintf(
&pszSemanageExecute,
pszSemanageFormat,
pszRootHomeDir);
BAIL_ON_LSA_ERROR(dwError);
systemresult = system(pszSemanageExecute);
if (systemresult < 0)
{
dwError = LwMapErrnoToLwError(errno);
BAIL_ON_LSA_ERROR(dwError);
}
cleanup:
LW_SAFE_FREE_STRING(pszRootHomeDir);
LW_SAFE_FREE_STRING(pszSemanageExecute);
return dwError;
error:
goto cleanup;
}
示例9: SamDbIncrementSequenceNumber_inlock
DWORD
SamDbIncrementSequenceNumber_inlock(
PSAM_DIRECTORY_CONTEXT pDirectoryContext
)
{
DWORD dwError = ERROR_SUCCESS;
PCSTR pszQueryTemplate = "UPDATE " SAM_DB_OBJECTS_TABLE \
" SET " SAM_DB_COL_SEQUENCE_NUMBER \
" = " SAM_DB_COL_SEQUENCE_NUMBER " + 1 " \
" WHERE " SAM_DB_COL_OBJECT_CLASS " = %u";
PSTR pszQuery = NULL;
sqlite3_stmt *pSqlStatement = NULL;
dwError = LwAllocateStringPrintf(&pszQuery,
pszQueryTemplate,
SAMDB_OBJECT_CLASS_DOMAIN);
BAIL_ON_SAMDB_ERROR(dwError);
dwError = sqlite3_prepare_v2(
pDirectoryContext->pDbContext->pDbHandle,
pszQuery,
-1,
&pSqlStatement,
NULL);
BAIL_ON_SAMDB_SQLITE_ERROR_DB(
dwError,
pDirectoryContext->pDbContext->pDbHandle);
dwError = sqlite3_step(pSqlStatement);
if (dwError == SQLITE_DONE)
{
dwError = ERROR_SUCCESS;
}
BAIL_ON_SAMDB_SQLITE_ERROR_STMT(dwError, pSqlStatement);
cleanup:
if (pSqlStatement)
{
sqlite3_finalize(pSqlStatement);
}
DIRECTORY_FREE_MEMORY(pszQuery);
return dwError;
error:
goto cleanup;
}
示例10: LwKrb5SetProcessDefaultCachePath
DWORD
LwKrb5SetProcessDefaultCachePath(
PCSTR pszCachePath
)
{
DWORD dwError = 0;
PSTR pszEnvironmentEntry = NULL;
static volatile PSTR pszSavedEnvironmentEntry = NULL;
static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
BOOLEAN bLocked = FALSE;
dwError = pthread_mutex_lock(&lock);
if (dwError)
{
dwError = LwMapErrnoToLwError(dwError);
BAIL_ON_LW_ERROR(dwError);
}
bLocked = TRUE;
dwError = LwAllocateStringPrintf(&pszEnvironmentEntry,
"KRB5CCNAME=%s",
pszCachePath);
BAIL_ON_LW_ERROR(dwError);
/*
* putenv requires that the buffer not be free'd.
*/
if (putenv(pszEnvironmentEntry) < 0)
{
dwError = LwMapErrnoToLwError(errno);
BAIL_ON_LW_ERROR(dwError);
}
LW_SAFE_FREE_STRING(pszSavedEnvironmentEntry);
pszSavedEnvironmentEntry = pszEnvironmentEntry;
pszEnvironmentEntry = NULL;
error:
LW_SAFE_FREE_STRING(pszEnvironmentEntry);
if (bLocked)
{
pthread_mutex_unlock(&lock);
}
return dwError;
}
示例11: ADUSMBGetFile
DWORD
ADUSMBGetFile(
PSTR pszDomainName,
PSTR pszSourcePath,
PSTR pszDestPath
)
{
DWORD dwError = MAC_AD_ERROR_SUCCESS;
PSTR pszFQSrcPath = NULL;
PSTR pszDCHostname = NULL;
if (IsNullOrEmptyString(pszDomainName) ||
IsNullOrEmptyString(pszSourcePath) ||
IsNullOrEmptyString(pszDestPath))
{
dwError = MAC_AD_ERROR_INVALID_PARAMETER;
BAIL_ON_MAC_ERROR(dwError);
}
dwError = GetPreferredDCAddress(
pszDomainName,
&pszDCHostname);
BAIL_ON_MAC_ERROR(dwError);
dwError = LwAllocateStringPrintf(
&pszFQSrcPath,
"//%s/sysvol/%s",
pszDCHostname,
*pszSourcePath == '/' ? pszSourcePath+1 : pszSourcePath);
BAIL_ON_MAC_ERROR(dwError);
LOG("Calling ADUCopyFileFromRemote(Src:%s, Dest:%s)", pszFQSrcPath, pszDestPath);
dwError = ADUCopyFileFromRemote(pszFQSrcPath, pszDestPath);
BAIL_ON_MAC_ERROR(dwError);
cleanup:
LW_SAFE_FREE_STRING(pszFQSrcPath);
LW_SAFE_FREE_STRING(pszDCHostname);
return dwError;
error:
goto cleanup;
}
示例12: LwCLdapOpenDirectory
DWORD
LwCLdapOpenDirectory(
IN PCSTR pszServerName,
OUT PHANDLE phDirectory
)
{
DWORD dwError = LW_ERROR_SUCCESS;
LDAP * ld = NULL;
PLW_LDAP_DIRECTORY_CONTEXT pDirectory = NULL;
int rc = LDAP_VERSION3;
PSTR pszURL = NULL;
LW_BAIL_ON_INVALID_STRING(pszServerName);
dwError = LwAllocateStringPrintf(&pszURL, "cldap://%s",
pszServerName);
BAIL_ON_LW_ERROR(dwError);
dwError = ldap_initialize(&ld, pszURL);
BAIL_ON_LDAP_ERROR(dwError);
dwError = ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &rc);
BAIL_ON_LDAP_ERROR(dwError);
dwError = ldap_set_option(ld, LDAP_OPT_REFERRALS, (void *)LDAP_OPT_OFF);
BAIL_ON_LDAP_ERROR(dwError);
dwError = LwAllocateMemory(sizeof(*pDirectory), OUT_PPVOID(&pDirectory));
BAIL_ON_LW_ERROR(dwError);
pDirectory->ld = ld;
error:
LW_SAFE_FREE_STRING(pszURL);
if (dwError)
{
if (pDirectory)
{
LwLdapCloseDirectory(pDirectory);
pDirectory = NULL;
}
}
*phDirectory = (HANDLE)pDirectory;
return dwError;
}
示例13: LsaAdRemoveGroupByIdFromCache
LSASS_API
DWORD
LsaAdRemoveGroupByIdFromCache(
IN HANDLE hLsaConnection,
IN OPTIONAL PCSTR pszDomainName,
IN gid_t gid
)
{
DWORD dwError = 0;
PSTR pszTargetProvider = NULL;
if (geteuid() != 0)
{
dwError = LW_ERROR_ACCESS_DENIED;
BAIL_ON_LSA_ERROR(dwError);
}
if (pszDomainName)
{
dwError = LwAllocateStringPrintf(
&pszTargetProvider,
"%s:%s",
LSA_PROVIDER_TAG_AD,
pszDomainName);
BAIL_ON_LSA_ERROR(dwError);
}
dwError = LsaProviderIoControl(
hLsaConnection,
pszTargetProvider ? pszTargetProvider : LSA_PROVIDER_TAG_AD,
LSA_AD_IO_REMOVEGROUPBYIDCACHE,
sizeof(gid),
&gid,
NULL,
NULL);
BAIL_ON_LSA_ERROR(dwError);
cleanup:
LW_SAFE_FREE_STRING(pszTargetProvider);
return dwError;
error:
goto cleanup;
}
示例14: LsaSrvLogProcessStoppedEvent
VOID
LsaSrvLogProcessStoppedEvent(
DWORD dwExitCode
)
{
DWORD dwError = 0;
PSTR pszDescription = NULL;
PSTR pszData = NULL;
dwError = LwAllocateStringPrintf(
&pszDescription,
"The authentication service was stopped");
BAIL_ON_LSA_ERROR(dwError);
dwError = LsaGetErrorMessageForLoggingEvent(
dwExitCode,
&pszData);
BAIL_ON_LSA_ERROR(dwError);
if (dwExitCode)
{
LsaSrvLogServiceFailureEvent(
LSASS_EVENT_ERROR_SERVICE_STOPPED,
SERVICE_EVENT_CATEGORY,
pszDescription,
pszData);
}
else
{
LsaSrvLogServiceSuccessEvent(
LSASS_EVENT_INFO_SERVICE_STOPPED,
SERVICE_EVENT_CATEGORY,
pszDescription,
pszData);
}
cleanup:
LW_SAFE_FREE_STRING(pszDescription);
LW_SAFE_FREE_STRING(pszData);
return;
error:
goto cleanup;
}
示例15: LwpsLegacySetJoinedDomainTrustEnumerationWaitTime
DWORD
LwpsLegacySetJoinedDomainTrustEnumerationWaitTime(
IN PLWPS_LEGACY_STATE pContext,
IN OPTIONAL PCSTR pszDomainName
)
{
DWORD dwError = 0;
int EE = 0;
PSTR pszRegistryPath = NULL;
DWORD dwValue = 0;
if (pszDomainName)
{
dwError = LwAllocateStringPrintf(
&pszRegistryPath,
"%s\\%s",
PSTOREDB_REGISTRY_AD_KEY,
pszDomainName);
GOTO_CLEANUP_ON_WINERROR_EE(dwError, EE);
dwError = RegUtilSetValue(
pContext->hReg,
HKEY_THIS_MACHINE,
pszRegistryPath,
NULL,
PSTOREDB_REGISTRY_TRUSTENUMERATIONWAIT_VALUE,
REG_DWORD,
(PVOID)&dwValue,
sizeof(dwValue));
GOTO_CLEANUP_ON_WINERROR_EE(dwError, EE);
dwError = RegUtilSetValue(
pContext->hReg,
HKEY_THIS_MACHINE,
pszRegistryPath,
NULL,
PSTOREDB_REGISTRY_TRUSTENUMERATIONWAITSECONDS_VALUE,
REG_DWORD,
(PVOID)&dwValue,
sizeof(dwValue));
GOTO_CLEANUP_ON_WINERROR_EE(dwError, EE);
}
cleanup:
LSA_PSTORE_LOG_LEAVE_ERROR_EE(dwError, EE);
return dwError;
}