This commit is contained in:
Juan Carlos Luciani
2007-04-02 22:16:07 +00:00
parent 2e19101343
commit 4da676ac00
26 changed files with 795 additions and 625 deletions

View File

@@ -36,7 +36,7 @@ typedef struct _AuthMechMod
{
LIST_ENTRY listEntry;
char *pAuthTypeName;
int authTypeNameLen;
size_t authTypeNameLen;
LIB_HANDLE libHandle;
AuthTokenIf *pAuthTokenIf;
@@ -87,7 +87,7 @@ GetAuthTokenIf(
{
LIST_ENTRY *pListEntry;
AuthMechMod *pAuthMechMod = NULL;
int authTypeNameLen = strlen(pAuthTypeName);
size_t authTypeNameLen = strlen(pAuthTypeName);
// Look if we already have the module in our list
pListEntry = g_authMechModuleListHead.Flink;
@@ -283,7 +283,7 @@ GetAuthMechToken(
if (CASA_SUCCESS(retStatus))
{
char *pAuthToken = NULL;
uint32_t authTokenBufLen = 0;
size_t authTokenBufLen = 0;
// We found a provider for the service, query it for the buffer size
// needed to obtain the authentication token.

View File

@@ -181,7 +181,7 @@ BuildAuthenticateMsg(
DbgTrace(0, "-BuildAuthenticateMsg- Buffer allocation error\n", 0);
}
DbgTrace(1, "-BuildAuthenticateMsg- End, pMsg = %0lX\n", (long) pMsg);
DbgTrace(1, "-BuildAuthenticateMsg- End, pMsg = 0x%X\n", pMsg);
return pMsg;
}

View File

@@ -194,7 +194,7 @@ CreateAuthTokenCacheEntry(
DbgTrace(0, "-CreateAuthTokenCacheEntry- entrySize overflow prevented\n", 0);
}
DbgTrace(1, "-CreateAuthTokenCacheEntry- End, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-CreateAuthTokenCacheEntry- End, pEntry = 0x%X\n", pEntry);
return pEntry;
}
@@ -320,7 +320,7 @@ CreateSessionTokenCacheEntry(
DbgTrace(0, "-CreateSessionTokenCacheEntry- entrySize overflow prevented\n", 0);
}
DbgTrace(1, "-CreateSessionTokenCacheEntry- End, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-CreateSessionTokenCacheEntry- End, pEntry = 0x%X\n", pEntry);
return pEntry;
}
@@ -345,7 +345,7 @@ FreeAuthCacheEntry(
{
WrapperAuthCacheEntry *pWrapperEntry = CONTAINING_RECORD(pEntry, WrapperAuthCacheEntry, entry);
DbgTrace(1, "-FreeAuthCacheEntry- Start, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-FreeAuthCacheEntry- Start, pEntry = 0x%X\n", pEntry);
// Free the entry after clearing the memory holding it since it
// may contain security sensitive data.
@@ -533,7 +533,7 @@ FindSessionTokenEntryInCache(
DbgTrace(0, "-FindSessionTokenEntryInCache- cacheKeyStrLen overflow prevented\n", 0);
}
DbgTrace(1, "-FindSessionTokenEntryInCache- End, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-FindSessionTokenEntryInCache- End, pEntry = 0x%X\n", pEntry);
return pEntry;
}
@@ -661,7 +661,7 @@ FindAuthTokenEntryInCache(
DbgTrace(0, "-FindAuthTokenEntryInCache- keySize overflow prevented\n", 0);
}
DbgTrace(1, "-FindAuthTokenEntryInCache- End, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-FindAuthTokenEntryInCache- End, pEntry = 0x%X\n", pEntry);
return pEntry;
}

View File

@@ -298,9 +298,10 @@ ObtainAuthTokenFromServer(
IN const char *pServiceName,
IN const char *pHostName,
IN const char *pNormalizedHostName,
IN const void *pCredStoreScope,
INOUT char **ppAuthToken,
INOUT int *pTokenLifetime,
IN void *pCredStoreScope)
INOUT bool *pAdvisedToRetry)
//
// Arguments:
//
@@ -318,8 +319,9 @@ ObtainAuthTokenFromServer(
DbgTrace(1, "-ObtainAuthTokenFromServer- Start\n", 0);
// Initialize output parameter
// Initialize output parameters
*ppAuthToken = NULL;
*pAdvisedToRetry = false;
// Open Rpc Session to the auth service at the specified host
pRpcSession = OpenRpcSession((g_pATSHostName != NULL) ? g_pATSHostName : pHostName,
@@ -410,6 +412,9 @@ ObtainAuthTokenFromServer(
{
RemoveSessionTokenEntryInCache(pSessionTokenAuthContext->pContext,
pCredStoreScope);
// Advice that a retry should be attempted
*pAdvisedToRetry = true;
}
}
}
@@ -529,9 +534,9 @@ CasaStatus
ObtainAuthTokenInt(
IN const char *pServiceName,
IN const char *pHostName,
IN const void *pCredStoreScope,
INOUT char *pAuthTokenBuf,
INOUT int *pAuthTokenBufLen,
IN void *pCredStoreScope)
INOUT int *pAuthTokenBufLen)
//
// Arguments:
// pServiceName -
@@ -545,6 +550,11 @@ ObtainAuthTokenInt(
// client is trying to authenticate. Note that the name
// can either be a DNS name or a dotted IP address.
//
// pCredStoreScope -
// Pointer to CASA structure for scoping credential store access
// to specific users. This can only be leveraged by applications
// running in the context of System.
//
// pAuthTokenBuf -
// Pointer to buffer that will receive the authentication
// token. The length of this buffer is specified by the
@@ -559,12 +569,7 @@ ObtainAuthTokenInt(
// completes or the buffer length required if the function
// fails because the buffer pointed at by pAuthTokenBuf is
// not large enough.
//
// pCredStoreScope -
// Pointer to CASA structure for scoping credential store access
// to specific users. This can only be leveraged by applications
// running in the context of System.
//
// Returns:
// Casa Status
//
@@ -645,15 +650,30 @@ ObtainAuthTokenInt(
{
// Initialize to retry in case of failure
int cacheEntryLifetime = DEFAULT_RETRY_LIFETIME;
bool advisedToRetry;
// Cache entry created, now try to obtain auth token from the CASA Server
pToken = NULL;
retStatus = ObtainAuthTokenFromServer(pServiceName,
pHostName,
pNormalizedHostName,
pCredStoreScope,
&pToken,
&cacheEntryLifetime,
pCredStoreScope);
&advisedToRetry);
// Retry if not successful and if advised to do so
if (!CASA_SUCCESS(retStatus)
&& advisedToRetry)
{
retStatus = ObtainAuthTokenFromServer(pServiceName,
pHostName,
pNormalizedHostName,
pCredStoreScope,
&pToken,
&cacheEntryLifetime,
&advisedToRetry);
}
// Add the entry to the cache if successful or if the reason that we failed
// was because the server was un-available.
@@ -803,9 +823,9 @@ ObtainAuthToken(
// Call our internal worker
retStatus = ObtainAuthTokenInt(pServiceName,
pHostName,
NULL,
pAuthTokenBuf,
pAuthTokenBufLen,
NULL);
pAuthTokenBufLen);
DbgTrace(1, "-ObtainAuthToken- End, retStatus = %08X\n", retStatus);
@@ -911,11 +931,11 @@ InitializeLibrary(void)
DbgTrace(0, "-InitializeLibrary- DisableSecureConnections setting configured = %s\n", pDisableSecureConnections);
// Adjust the g_rpcFlags variable based on the setting
if (stricmp(pDisableSecureConnections, "true") == 0)
if (_stricmp(pDisableSecureConnections, "true") == 0)
{
g_rpcFlags &= ~SECURE_RPC_FLAG;
}
else if (stricmp(pDisableSecureConnections, "false") == 0)
else if (_stricmp(pDisableSecureConnections, "false") == 0)
{
g_rpcFlags |= SECURE_RPC_FLAG;
}

View File

@@ -160,7 +160,7 @@ BuildGetAuthPolicyMsg(
DbgTrace(0, "-BuildGetAuthPolicyMsg- Buffer allocation error\n", 0);
}
DbgTrace(1, "-BuildGetAuthPolicyMsg- End, pMsg = %0lX\n", (long) pMsg);
DbgTrace(1, "-BuildGetAuthPolicyMsg- End, pMsg = 0x%X\n", pMsg);
return pMsg;
}

View File

@@ -178,7 +178,7 @@ BuildGetAuthTokenMsg(
DbgTrace(0, "-BuildGetAuthTokenMsg- Buffer allocation error\n", 0);
}
DbgTrace(1, "-BuildGetAuthTokenMsg- End, pMsg = %0lX\n", (long) pMsg);
DbgTrace(1, "-BuildGetAuthTokenMsg- End, pMsg = 0x%X\n", pMsg);
return pMsg;
}

View File

@@ -144,9 +144,9 @@ CasaStatus
ObtainAuthTokenInt(
IN const char *pServiceName,
IN const char *pHostName,
IN const void *pCredStoreScope,
INOUT char *pAuthTokenBuf,
INOUT int *pAuthTokenBufLen,
IN void *pCredStoreScope);
INOUT int *pAuthTokenBufLen);
//
// Functions exported by authmech.c

View File

@@ -87,11 +87,11 @@ CasaStatus
(SSCS_CALL *PFNAuthTokenIf_GetAuthToken)(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,
INOUT uint32_t *pTokenBufLen);
INOUT size_t *pTokenBufLen);
//
// Arguments:
// pIfInstance -
@@ -159,20 +159,20 @@ typedef
CasaStatus
(SSCS_CALL *PFN_GetAuthTokenIfRtn)(
IN const ConfigIf *pModuleConfigIf,
IN const int debugLevel,
IN const char *pDebugFilePath,
IN const int debugLevel,
IN const char *pDebugFilePath,
INOUT AuthTokenIf **ppAuthTokenIf);
//
// Arguments:
// pModuleConfigIf -
// Pointer to configuration interface instance for the module.
//
// debugLevel -
// Level to utilize for debugging, 0 being lowest.
//
// pDebugFilePath -
// Path to debug log file. Can be NULL.
//
// debugLevel -
// Level to utilize for debugging, 0 being lowest.
//
// pDebugFilePath -
// Path to debug log file. Can be NULL.
//
// ppAuthTokenIf -
// Pointer to variable that will receive pointer to AuthTokenIf
// instance.

View File

@@ -58,7 +58,7 @@ CasaStatus SSCS_CALL
AuthTokenIf_GetAuthToken(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,

View File

@@ -34,7 +34,7 @@
// Debug Level and debug log file path.
int KrbMechDebugLevel = 0;
char *pKrbMechDebugLogFilePath = NULL;
char *pKrbMechDebugLogFilePath = NULL;
// Tables for Base64 encoding and decoding
static const int8_t g_Base64[] =

View File

@@ -39,7 +39,7 @@ CasaStatus SSCS_CALL
AuthTokenIf_GetAuthToken(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,
@@ -122,32 +122,53 @@ AuthTokenIf_GetAuthToken(
// Process any mechanism information that may have been provided
if (pMechInfo)
{
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
char *pNextSettingToken;
char *pSettingValueToken = strtok_r(pMechInfo, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
// Process the setting
if (strcmpi(pSettingName, "SVC_PRINCIPAL") == 0)
{
pKrbServiceName = pSettingValue;
}
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
// Allocate a buffer to hold the mech info so that we can manipulate it
char *pMechInfoInt = malloc(strlen(pMechInfo) + 1);
if (pMechInfoInt)
{
char *pNextSettingToken;
char *pSettingValueToken;
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
// Copy the mechanism info to our work buffer
strcpy(pMechInfoInt, pMechInfo);
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
pSettingValueToken = strtok_r(pMechInfoInt, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
// Process the setting
if (stricmp(pSettingName, "SVC_PRINCIPAL") == 0)
{
pKrbServiceName = pSettingValue;
}
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
// Free the buffer that we allocated
free(pMechInfoInt);
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Buffer allocation failure\n", 0);
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
CASA_FACILITY_PWTOKEN,
CASA_STATUS_INVALID_PARAMETER);
goto exit;
}
}
// Check if we need to construct the service name

View File

@@ -102,88 +102,6 @@
CommandLine="mkdir \"Program Files"\novell\
mkdir \"Program Files"\novell\casa
mkdir \"Program Files"\novell\casa\lib\
mkdir \"Program Files"\novell\casa\etc\
mkdir \"Program Files"\novell\casa\etc\auth\
mkdir \"Program Files"\novell\casa\etc\auth\mechanisms\
copy Krb5Authenticate.conf \"Program Files"\novell\casa\etc\auth\mechanisms\Krb5Authenticate.conf
copy $(OutDir)\krb5mech.dll \"Program Files"\novell\casa\lib\krb5mech.dll
"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
IntermediateDirectory="..\windows\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-DSECURITY_WIN32 -D&quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".\;..\;..\..\..;..\..\..\..\include;&quot;..\..\..\..\..\..\..\Expat-2.0.0\source\lib&quot;;..\..\..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:GetAuthTokenInterface"
AdditionalDependencies="secur32.lib"
OutputFile="$(OutDir)/krb5mech.dll"
LinkIncremental="1"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@@ -266,7 +184,89 @@
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\&#x0D;&#x0A;copy Krb5Authenticate.conf \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\Krb5Authenticate.conf&#x0D;&#x0A;copy $(OutDir)\krb5mech.dll \&quot;Program Files&quot;\novell\casa\lib\krb5mech.dll&#x0D;&#x0A;"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
IntermediateDirectory="..\windows\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-DSECURITY_WIN32 -D&quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".\;..\;..\..\..;..\..\..\..\include;&quot;..\..\..\..\..\..\..\Expat-2.0.0\source\lib&quot;;..\..\..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:GetAuthTokenInterface"
AdditionalDependencies="secur32.lib"
OutputFile="$(OutDir)/krb5mech.dll"
LinkIncremental="1"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration

View File

@@ -1,97 +1,97 @@
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
//===[ Include files ]=====================================================
#include <windows.h>
#include <stdio.h>
#include <winerror.h>
#include <security.h>
#include <sspi.h>
//===[ Type definitions ]==================================================
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \
(char*)(address) - \
(char*)(&((type *)0)->field)))
#endif
//
// DbgTrace macro define
//
//#define DbgTrace(LEVEL, X, Y) { \
//char printBuff[256]; \
// if (LEVEL == 0 || DebugLevel >= LEVEL) \
// { \
// _snprintf(printBuff, sizeof(printBuff), X, Y); \
// printf("Krb5Mech %s", printBuff); \
// } \
//}
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
//===[ Include files ]=====================================================
#include <windows.h>
#include <stdio.h>
#include <winerror.h>
#include <security.h>
#include <sspi.h>
//===[ Type definitions ]==================================================
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \
(char*)(address) - \
(char*)(&((type *)0)->field)))
#endif
//
// DbgTrace macro define
//
//#define DbgTrace(LEVEL, X, Y) { \
//char printBuff[256]; \
// if (LEVEL == 0 || DebugLevel >= LEVEL) \
// { \
// _snprintf(printBuff, sizeof(printBuff), X, Y); \
// printf("Krb5Mech %s", printBuff); \
// } \
//}
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
FILE *pDebugFile; \
if (LEVEL == 0 || KrbMechDebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "Krb5Mech "); \
strncat(formatBuff, X, sizeof(formatBuff) - 9); \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (pKrbMechDebugLogFilePath) \
{ \
if (LEVEL == 0 || KrbMechDebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "Krb5Mech "); \
strncat(formatBuff, X, sizeof(formatBuff) - 9); \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (pKrbMechDebugLogFilePath) \
{ \
pDebugFile = fopen(pKrbMechDebugLogFilePath, "a+"); \
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \
fclose(pDebugFile); \
} \
} \
else \
OutputDebugString(printBuff); \
} \
}
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define bool BOOLEAN
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
//===[ Inlines functions ]===============================================
//===[ Function prototypes ]===============================================
//===[ Global externals ]==================================================
//===[ External prototypes ]===============================================
//=========================================================================
#endif // _PLATFORM_H_
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \
fclose(pDebugFile); \
} \
} \
else \
OutputDebugString(printBuff); \
} \
}
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define bool BOOLEAN
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
//===[ Inlines functions ]===============================================
//===[ Function prototypes ]===============================================
//===[ Global externals ]==================================================
//===[ External prototypes ]===============================================
//=========================================================================
#endif // _PLATFORM_H_

View File

@@ -220,7 +220,7 @@ CasaStatus SSCS_CALL
AuthTokenIf_GetAuthToken(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,
@@ -302,34 +302,55 @@ AuthTokenIf_GetAuthToken(
// Process any mechanism information that may have been provided
if (pMechInfo)
{
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
char *pNextSettingToken;
char *pSettingValueToken = strtok_r(pMechInfo, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
// Allocate a buffer to hold the mech info so that we can manipulate it
char *pMechInfoInt = malloc(strlen(pMechInfo) + 1);
if (pMechInfoInt)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
char *pNextSettingToken;
char *pSettingValueToken;
// Copy the mechanism info to our work buffer
strcpy(pMechInfoInt, pMechInfo);
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
pSettingValueToken = strtok_r(pMechInfoInt, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
// Process the setting
if (strcasecmp(pSettingName, "REALM_CREDENTIALS_ONLY") == 0)
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
if (strcasecmp(pSettingValue, "true") == 0)
// Process the setting
if (strcasecmp(pSettingName, "REALM_CREDENTIALS_ONLY") == 0)
{
realm_credentials_only = true;
if (strcasecmp(pSettingValue, "true") == 0)
{
realm_credentials_only = true;
}
}
}
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
// Free the buffer that we allocated
free(pMechInfoInt);
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Buffer allocation failure\n", 0);
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
CASA_FACILITY_PWTOKEN,
CASA_STATUS_INVALID_PARAMETER);
goto exit;
}
}

View File

@@ -60,7 +60,7 @@ CasaStatus SSCS_CALL
AuthTokenIf_GetAuthToken(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,

View File

@@ -1,96 +1,96 @@
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
//===[ Include files ]=====================================================
#include <windows.h>
#include <stdio.h>
#include <winerror.h>
//===[ Type definitions ]==================================================
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \
(char*)(address) - \
(char*)(&((type *)0)->field)))
#endif
//
// DbgTrace macro define
//
//#define DbgTrace(LEVEL, X, Y) { \
//char printBuff[256]; \
// if (LEVEL == 0 || DebugLevel >= LEVEL) \
// { \
// _snprintf(printBuff, sizeof(printBuff), X, Y); \
// printf("PwdMech %s", printBuff); \
// } \
//}
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
//===[ Include files ]=====================================================
#include <windows.h>
#include <stdio.h>
#include <winerror.h>
//===[ Type definitions ]==================================================
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \
(char*)(address) - \
(char*)(&((type *)0)->field)))
#endif
//
// DbgTrace macro define
//
//#define DbgTrace(LEVEL, X, Y) { \
//char printBuff[256]; \
// if (LEVEL == 0 || DebugLevel >= LEVEL) \
// { \
// _snprintf(printBuff, sizeof(printBuff), X, Y); \
// printf("PwdMech %s", printBuff); \
// } \
//}
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
FILE *pDebugFile; \
if (LEVEL == 0 || PwdMechDebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "CASA_PwdMech "); \
strncat(formatBuff, X, sizeof(formatBuff) - 8); \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (pPwdMechDebugLogFilePath) \
{ \
if (LEVEL == 0 || PwdMechDebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "CASA_PwdMech "); \
strncat(formatBuff, X, sizeof(formatBuff) - 8); \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (pPwdMechDebugLogFilePath) \
{ \
pDebugFile = fopen(pPwdMechDebugLogFilePath, "a+"); \
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \
fclose(pDebugFile); \
} \
} \
else \
OutputDebugString(printBuff); \
} \
}
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define bool BOOLEAN
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
#define strcasecmp strcmpi
//===[ Inlines functions ]===============================================
//===[ Function prototypes ]===============================================
//===[ Global externals ]==================================================
//===[ External prototypes ]===============================================
//=========================================================================
#endif // _PLATFORM_H_
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \
fclose(pDebugFile); \
} \
} \
else \
OutputDebugString(printBuff); \
} \
}
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define bool BOOLEAN
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
#define strcasecmp stricmp
//===[ Inlines functions ]===============================================
//===[ Function prototypes ]===============================================
//===[ Global externals ]==================================================
//===[ External prototypes ]===============================================
//=========================================================================
#endif // _PLATFORM_H_

View File

@@ -103,89 +103,6 @@
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\&#x0D;&#x0A;copy PwdAuthenticate.conf \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\PwdAuthenticate.conf&#x0D;&#x0A;copy $(OutDir)\pwmech.dll \&quot;Program Files&quot;\novell\casa\lib\pwmech.dll&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
IntermediateDirectory="..\windows\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-D&quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".\;..\;..\..\;..\..\..\;..\..\..\include;..\..\..\include\windows;..\..\..\..\..\..\CASA\include;..\..\..\..\..\..\..\..\CASA\micasadk\Release"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:GetAuthTokenInterface"
AdditionalDependencies="micasa.lib"
OutputFile="$(OutDir)/pwmech.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Novell\CASA\lib&quot;;..\..\..\..\..\..\CASA\micasadk\Release"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@@ -269,7 +186,90 @@
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\&#x0D;&#x0A;copy PwdAuthenticate.conf \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\PwdAuthenticate.conf&#x0D;&#x0A;copy $(OutDir)\pwmech.dll \&quot;Program Files&quot;\novell\casa\lib\pwmech.dll&#x0D;&#x0A;"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
IntermediateDirectory="..\windows\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-D&quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".\;..\;..\..\;..\..\..\;..\..\..\include;..\..\..\include\windows;..\..\..\..\..\..\CASA\include;..\..\..\..\..\..\..\..\CASA\micasadk\Release"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:GetAuthTokenInterface"
AdditionalDependencies="micasa.lib"
OutputFile="$(OutDir)/pwmech.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Novell\CASA\lib&quot;;..\..\..\..\..\..\CASA\micasadk\Release"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration

View File

@@ -45,8 +45,8 @@
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
Optimization="0"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include;&quot;$(CASA)\include&quot;;&quot;$(EXPAT)\source\lib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_MSC_VER"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -69,10 +69,10 @@
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatml.lib micasa.lib shlwapi.lib"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatmt.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release;&quot;$(CASA)\lib&quot;;&quot;$(CASA)\lib\Release&quot;;&quot;$(CASA)\micasadk\Release&quot;;&quot;$(EXPAT)\StaticLibs&quot;"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release;&quot;$(CASA)\lib&quot;;&quot;$(CASA)\lib\Release&quot;;&quot;$(CASA)\micasadk\Release&quot;;&quot;$(EXPAT)\StaticLibs&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
@@ -107,6 +107,96 @@
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;copy $(OutDir)\casa_authtoken.dll \&quot;Program Files&quot;\novell\casa\lib\casa_authtoken.dll&#x0D;&#x0A;copy $(SolutionDir)\lib\windows\casa_authtoken.lib \&quot;Program Files&quot;\novell\casa\lib\casa_authtoken.lib&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
Optimization="0"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;$(MS_SDK_DIR)\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include;&quot;$(CASA)\include&quot;;&quot;$(EXPAT)\source\lib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
CallingConvention="2"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib &quot;$(MS_SDK_DIR)\lib\amd64\winhttp.lib&quot; libexpatmt.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs\x64&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release;&quot;$(CASA)\lib&quot;;&quot;$(CASA)\lib\Release&quot;;&quot;$(CASA)\micasadk\Release&quot;;&quot;$(EXPAT)\StaticLibs&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
SubSystem="0"
ImportLibrary="$(SolutionDir)lib\windows/$(TargetName).lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
@@ -133,8 +223,8 @@
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_MSC_VER"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
@@ -153,7 +243,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatml.lib micasa.lib shlwapi.lib"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatmt.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release"
@@ -191,96 +281,6 @@
CommandLine=""
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
Optimization="0"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include;&quot;$(CASA)\include&quot;;&quot;$(EXPAT)\source\lib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
CallingConvention="2"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatml.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release;&quot;$(CASA)\lib&quot;;&quot;$(CASA)\lib\Release&quot;;&quot;$(CASA)\micasadk\Release&quot;;&quot;$(EXPAT)\StaticLibs&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
SubSystem="0"
ImportLibrary="$(SolutionDir)lib\windows/$(TargetName).lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;copy $(OutDir)\casa_authtoken.dll \&quot;Program Files&quot;\novell\casa\lib\casa_authtoken.dll&#x0D;&#x0A;copy $(SolutionDir)\lib\windows\casa_authtoken.lib \&quot;Program Files&quot;\novell\casa\lib\casa_authtoken.lib&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@@ -308,8 +308,8 @@
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;$(MS_SDK_DIR)\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
@@ -328,10 +328,10 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatml.lib micasa.lib shlwapi.lib"
AdditionalDependencies="ws2_32.lib &quot;$(MS_SDK_DIR)\lib\amd64\winhttp.lib&quot; libexpatmt.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release"
AdditionalLibraryDirectories="&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs\x64&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"

View File

@@ -112,9 +112,9 @@ ObtainAuthTokenEx(
// Call our internal worker
retStatus = ObtainAuthTokenInt(pServiceName,
pHostName,
pCredStoreScope,
pAuthTokenBuf,
pAuthTokenBufLen,
pCredStoreScope);
pAuthTokenBufLen);
DbgTrace(1, "-ObtainAuthTokenEx- End, retStatus = %0X\n", retStatus);

View File

@@ -55,7 +55,7 @@
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
FILE *pDebugFile; \
FILE *pDebugFile; \
if (LEVEL == 0 || DebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "CASA_AuthToken "); \
@@ -63,7 +63,7 @@ FILE *pDebugFile; \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (g_pDebugLogFilePath) \
{ \
pDebugFile = fopen(g_pDebugLogFilePath, "a+"); \
pDebugFile = fopen(g_pDebugLogFilePath, "a+"); \
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \

View File

@@ -153,8 +153,8 @@ CopyWideToMultiAlloc(
//++=======================================================================
RpcSession*
OpenRpcSession(
IN char *pHostName,
IN uint16_t hostPort)
IN const char *pHostName,
IN const uint16_t hostPort)
//
// Arguments:
//
@@ -307,7 +307,7 @@ static
void CALLBACK
SecureFailureStatusCallback(
IN HINTERNET hRequest,
IN DWORD *pContext,
IN DWORD_PTR *pContext,
IN DWORD internetStatus,
IN LPVOID pStatusInformation,
IN DWORD statusInformationLength)