Corrected the MSI and MSM packages to install the appropriate components. These components got broken during the migration to VS2005.
This commit is contained in:
parent
4bc612ca9b
commit
23bb4f7943
@ -51,13 +51,13 @@ namespace Novell.Casa.Client.Auth
|
|||||||
public IntPtr ext; // points to the actual extension
|
public IntPtr ext; // points to the actual extension
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
[DllImport(AUTH_LIBRARY, CharSet=CharSet.None) ]
|
[DllImport(AUTH_LIBRARY, CharSet=CharSet.None) ]
|
||||||
private static extern int ObtainAuthToken
|
private static extern int ObtainAuthToken
|
||||||
(
|
(
|
||||||
[In] byte[] baService,
|
[In] byte[] baService,
|
||||||
[In] byte[] baHost,
|
[In] byte[] baHost,
|
||||||
[In, Out] byte[] baToken,
|
[In, Out] byte[] baToken,
|
||||||
[In, Out] ref int iTokenLength
|
[In, Out] ref int iTokenLength
|
||||||
);
|
);
|
||||||
|
|
||||||
[DllImport(AUTH_LIBRARY, CharSet=CharSet.None) ]
|
[DllImport(AUTH_LIBRARY, CharSet=CharSet.None) ]
|
||||||
|
@ -1,170 +1,170 @@
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
|
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
* License as published by the Free Software Foundation; version 2.1
|
* License as published by the Free Software Foundation; version 2.1
|
||||||
* of the License.
|
* of the License.
|
||||||
*
|
*
|
||||||
* This library is distributed in the hope that it will be useful,
|
* This library is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* Library Lesser General Public License for more details.
|
* Library Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, Novell, Inc.
|
* License along with this library; if not, Novell, Inc.
|
||||||
*
|
*
|
||||||
* To contact Novell about this file by physical or electronic mail,
|
* To contact Novell about this file by physical or electronic mail,
|
||||||
* you may find current contact information at www.novell.com.
|
* you may find current contact information at www.novell.com.
|
||||||
*
|
*
|
||||||
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||||
*
|
*
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
//===[ Include files ]=====================================================
|
//===[ Include files ]=====================================================
|
||||||
|
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
//===[ Type definitions ]==================================================
|
//===[ Type definitions ]==================================================
|
||||||
|
|
||||||
//
|
//
|
||||||
// Authentication Token Interface instance data
|
// Authentication Token Interface instance data
|
||||||
//
|
//
|
||||||
typedef struct _AuthTokenIfInstance
|
typedef struct _AuthTokenIfInstance
|
||||||
{
|
{
|
||||||
int refCount;
|
int refCount;
|
||||||
AuthTokenIf authTokenIf;
|
AuthTokenIf authTokenIf;
|
||||||
|
|
||||||
} AuthTokenIfInstance, *PAuthTokenIfInstance;
|
} AuthTokenIfInstance, *PAuthTokenIfInstance;
|
||||||
|
|
||||||
//===[ Function prototypes ]===============================================
|
//===[ Function prototypes ]===============================================
|
||||||
|
|
||||||
//===[ Global variables ]==================================================
|
//===[ Global variables ]==================================================
|
||||||
|
|
||||||
// AuthTokenIf variables
|
// AuthTokenIf variables
|
||||||
static
|
static
|
||||||
int g_numAuthTokenIfObjs = 0;
|
int g_numAuthTokenIfObjs = 0;
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
static
|
static
|
||||||
int SSCS_CALL
|
int SSCS_CALL
|
||||||
AuthTokenIf_AddReference(
|
AuthTokenIf_AddReference(
|
||||||
IN const void *pIfInstance)
|
IN const void *pIfInstance)
|
||||||
//
|
//
|
||||||
// Arguments:
|
// Arguments:
|
||||||
// pIfInstance -
|
// pIfInstance -
|
||||||
// Pointer to interface object.
|
// Pointer to interface object.
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Interface reference count.
|
// Interface reference count.
|
||||||
//
|
//
|
||||||
// Description:
|
// Description:
|
||||||
// Increases interface reference count.
|
// Increases interface reference count.
|
||||||
//
|
//
|
||||||
// L2
|
// L2
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
int refCount;
|
int refCount;
|
||||||
AuthTokenIfInstance *pAuthTokenIfInstance = CONTAINING_RECORD(pIfInstance, AuthTokenIfInstance, authTokenIf);
|
AuthTokenIfInstance *pAuthTokenIfInstance = CONTAINING_RECORD(pIfInstance, AuthTokenIfInstance, authTokenIf);
|
||||||
|
|
||||||
DbgTrace(2, "-AuthTokenIf_AddReference- Start\n", 0);
|
DbgTrace(2, "-AuthTokenIf_AddReference- Start\n", 0);
|
||||||
|
|
||||||
// Increment the reference count on the object
|
// Increment the reference count on the object
|
||||||
pAuthTokenIfInstance->refCount ++;
|
pAuthTokenIfInstance->refCount ++;
|
||||||
refCount = pAuthTokenIfInstance->refCount;
|
refCount = pAuthTokenIfInstance->refCount;
|
||||||
|
|
||||||
DbgTrace(2, "-AuthTokenIf_AddReference- End, refCount = %08X\n", refCount);
|
DbgTrace(2, "-AuthTokenIf_AddReference- End, refCount = %08X\n", refCount);
|
||||||
|
|
||||||
return refCount;
|
return refCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
static
|
static
|
||||||
void SSCS_CALL
|
void SSCS_CALL
|
||||||
AuthTokenIf_ReleaseReference(
|
AuthTokenIf_ReleaseReference(
|
||||||
IN const void *pIfInstance)
|
IN const void *pIfInstance)
|
||||||
//
|
//
|
||||||
// Arguments:
|
// Arguments:
|
||||||
// pIfInstance -
|
// pIfInstance -
|
||||||
// Pointer to interface object.
|
// Pointer to interface object.
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Nothing.
|
// Nothing.
|
||||||
//
|
//
|
||||||
// Description:
|
// Description:
|
||||||
// Decreases interface reference count. The interface is deallocated if
|
// Decreases interface reference count. The interface is deallocated if
|
||||||
// the reference count becomes zero.
|
// the reference count becomes zero.
|
||||||
//
|
//
|
||||||
// L2
|
// L2
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
bool freeObj = false;
|
bool freeObj = false;
|
||||||
AuthTokenIfInstance *pAuthTokenIfInstance = CONTAINING_RECORD(pIfInstance, AuthTokenIfInstance, authTokenIf);
|
AuthTokenIfInstance *pAuthTokenIfInstance = CONTAINING_RECORD(pIfInstance, AuthTokenIfInstance, authTokenIf);
|
||||||
|
|
||||||
DbgTrace(2, "-AuthTokenIf_ReleaseReference- Start\n", 0);
|
DbgTrace(2, "-AuthTokenIf_ReleaseReference- Start\n", 0);
|
||||||
|
|
||||||
// Decrement the reference count on the object and determine if it needs to
|
// Decrement the reference count on the object and determine if it needs to
|
||||||
// be released.
|
// be released.
|
||||||
pAuthTokenIfInstance->refCount --;
|
pAuthTokenIfInstance->refCount --;
|
||||||
if (pAuthTokenIfInstance->refCount == 0)
|
if (pAuthTokenIfInstance->refCount == 0)
|
||||||
{
|
{
|
||||||
// The object needs to be released, forget about it.
|
// The object needs to be released, forget about it.
|
||||||
freeObj = true;
|
freeObj = true;
|
||||||
g_numAuthTokenIfObjs --;
|
g_numAuthTokenIfObjs --;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Free object if necessary
|
// Free object if necessary
|
||||||
if (freeObj)
|
if (freeObj)
|
||||||
free(pAuthTokenIfInstance);
|
free(pAuthTokenIfInstance);
|
||||||
|
|
||||||
DbgTrace(2, "-AuthTokenIf_ReleaseReference- End\n", 0);
|
DbgTrace(2, "-AuthTokenIf_ReleaseReference- End\n", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
CasaStatus SSCS_CALL
|
CasaStatus SSCS_CALL
|
||||||
GET_AUTH_TOKEN_INTERFACE_RTN(
|
GET_AUTH_TOKEN_INTERFACE_RTN(
|
||||||
IN const ConfigIf *pModuleConfigIf,
|
IN const ConfigIf *pModuleConfigIf,
|
||||||
INOUT AuthTokenIf **ppAuthTokenIf)
|
INOUT AuthTokenIf **ppAuthTokenIf)
|
||||||
//
|
//
|
||||||
// Arguments:
|
// Arguments:
|
||||||
// pModuleConfigIf -
|
// pModuleConfigIf -
|
||||||
// Pointer to configuration interface instance for the module.
|
// Pointer to configuration interface instance for the module.
|
||||||
//
|
//
|
||||||
// ppAuthTokenIf -
|
// ppAuthTokenIf -
|
||||||
// Pointer to variable that will receive pointer to AuthTokenIf
|
// Pointer to variable that will receive pointer to AuthTokenIf
|
||||||
// instance.
|
// instance.
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Casa Status
|
// Casa Status
|
||||||
//
|
//
|
||||||
// Description:
|
// Description:
|
||||||
// Gets authentication token interface instance.
|
// Gets authentication token interface instance.
|
||||||
//
|
//
|
||||||
// L2
|
// L2
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
CasaStatus retStatus;
|
CasaStatus retStatus;
|
||||||
AuthTokenIfInstance *pAuthTokenIfInstance;
|
AuthTokenIfInstance *pAuthTokenIfInstance;
|
||||||
char *pDebugLevelSetting;
|
char *pDebugLevelSetting;
|
||||||
|
|
||||||
DbgTrace(1, "-GetAuthTokenInterface- Start\n", 0);
|
DbgTrace(1, "-GetAuthTokenInterface- Start\n", 0);
|
||||||
|
|
||||||
// Validate input parameters
|
// Validate input parameters
|
||||||
if (pModuleConfigIf == NULL
|
if (pModuleConfigIf == NULL
|
||||||
|| ppAuthTokenIf == NULL)
|
|| ppAuthTokenIf == NULL)
|
||||||
{
|
{
|
||||||
DbgTrace(0, "-GetAuthTokenInterface- Invalid input parameter\n", 0);
|
DbgTrace(0, "-GetAuthTokenInterface- Invalid input parameter\n", 0);
|
||||||
|
|
||||||
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
|
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
|
||||||
CASA_FACILITY_PWTOKEN,
|
CASA_FACILITY_PWTOKEN,
|
||||||
CASA_STATUS_INVALID_PARAMETER);
|
CASA_STATUS_INVALID_PARAMETER);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if a DebugLevel has been configured
|
// Check if a DebugLevel has been configured
|
||||||
pDebugLevelSetting = pModuleConfigIf->getEntryValue(pModuleConfigIf, "DebugLevel");
|
pDebugLevelSetting = pModuleConfigIf->getEntryValue(pModuleConfigIf, "DebugLevel");
|
||||||
if (pDebugLevelSetting != NULL)
|
if (pDebugLevelSetting != NULL)
|
||||||
@ -177,44 +177,44 @@ GET_AUTH_TOKEN_INTERFACE_RTN(
|
|||||||
// Free the buffer holding the debug level
|
// Free the buffer holding the debug level
|
||||||
free(pDebugLevelSetting);
|
free(pDebugLevelSetting);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allocate space for the interface instance
|
// Allocate space for the interface instance
|
||||||
pAuthTokenIfInstance = malloc(sizeof(*pAuthTokenIfInstance));
|
pAuthTokenIfInstance = malloc(sizeof(*pAuthTokenIfInstance));
|
||||||
if (pAuthTokenIfInstance)
|
if (pAuthTokenIfInstance)
|
||||||
{
|
{
|
||||||
// Initialize the interface instance data
|
// Initialize the interface instance data
|
||||||
pAuthTokenIfInstance->refCount = 1;
|
pAuthTokenIfInstance->refCount = 1;
|
||||||
pAuthTokenIfInstance->authTokenIf.addReference = AuthTokenIf_AddReference;
|
pAuthTokenIfInstance->authTokenIf.addReference = AuthTokenIf_AddReference;
|
||||||
pAuthTokenIfInstance->authTokenIf.releaseReference = AuthTokenIf_ReleaseReference;
|
pAuthTokenIfInstance->authTokenIf.releaseReference = AuthTokenIf_ReleaseReference;
|
||||||
pAuthTokenIfInstance->authTokenIf.getAuthToken = AuthTokenIf_GetAuthToken;
|
pAuthTokenIfInstance->authTokenIf.getAuthToken = AuthTokenIf_GetAuthToken;
|
||||||
|
|
||||||
// Keep track of this object
|
// Keep track of this object
|
||||||
g_numAuthTokenIfObjs ++;
|
g_numAuthTokenIfObjs ++;
|
||||||
|
|
||||||
// Return the interface to the caller
|
// Return the interface to the caller
|
||||||
*ppAuthTokenIf = &pAuthTokenIfInstance->authTokenIf;
|
*ppAuthTokenIf = &pAuthTokenIfInstance->authTokenIf;
|
||||||
|
|
||||||
// Success
|
// Success
|
||||||
retStatus = CASA_STATUS_SUCCESS;
|
retStatus = CASA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DbgTrace(0, "-GetAuthTokenInterface- Buffer allocation failure\n", 0);
|
DbgTrace(0, "-GetAuthTokenInterface- Buffer allocation failure\n", 0);
|
||||||
|
|
||||||
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
|
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
|
||||||
CASA_FACILITY_PWTOKEN,
|
CASA_FACILITY_PWTOKEN,
|
||||||
CASA_STATUS_INSUFFICIENT_RESOURCES);
|
CASA_STATUS_INSUFFICIENT_RESOURCES);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
DbgTrace(1, "-GetAuthTokenInterface- End, retStatus = %08X\n", retStatus);
|
DbgTrace(1, "-GetAuthTokenInterface- End, retStatus = %08X\n", retStatus);
|
||||||
|
|
||||||
return retStatus;
|
return retStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
|
|
||||||
|
@ -87,10 +87,10 @@ DecodeData(
|
|||||||
INOUT int32_t *pDataLen);
|
INOUT int32_t *pDataLen);
|
||||||
|
|
||||||
extern
|
extern
|
||||||
int
|
int
|
||||||
dtoul(
|
dtoul(
|
||||||
IN const char *cp,
|
IN const char *cp,
|
||||||
IN const int len);
|
IN const int len);
|
||||||
|
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
#######################################################
|
#######################################################
|
||||||
# #
|
# #
|
||||||
# CASA Authentication Token System configuration file #
|
# CASA Authentication Token System configuration file #
|
||||||
# for module: #
|
# for module: #
|
||||||
# #
|
# #
|
||||||
# Krb5Authenticate #
|
# Krb5Authenticate #
|
||||||
# #
|
# #
|
||||||
#######################################################
|
#######################################################
|
||||||
|
|
||||||
LibraryName \Program Files\novell\casa\lib\krb5mech.dll
|
LibraryName \Program Files\novell\casa\lib\krb5mech.dll
|
||||||
|
|
||||||
#
|
#
|
||||||
# DebugLevel setting.
|
# DebugLevel setting.
|
||||||
#
|
#
|
||||||
@ -23,5 +23,5 @@ LibraryName \Program Files\novell\casa\lib\krb5mech.dll
|
|||||||
# to /var/log/messages.
|
# to /var/log/messages.
|
||||||
#
|
#
|
||||||
#DebugLevel 0
|
#DebugLevel 0
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,170 +1,170 @@
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
|
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
* License as published by the Free Software Foundation; version 2.1
|
* License as published by the Free Software Foundation; version 2.1
|
||||||
* of the License.
|
* of the License.
|
||||||
*
|
*
|
||||||
* This library is distributed in the hope that it will be useful,
|
* This library is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* Library Lesser General Public License for more details.
|
* Library Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, Novell, Inc.
|
* License along with this library; if not, Novell, Inc.
|
||||||
*
|
*
|
||||||
* To contact Novell about this file by physical or electronic mail,
|
* To contact Novell about this file by physical or electronic mail,
|
||||||
* you may find current contact information at www.novell.com.
|
* you may find current contact information at www.novell.com.
|
||||||
*
|
*
|
||||||
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||||
*
|
*
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
//===[ Include files ]=====================================================
|
//===[ Include files ]=====================================================
|
||||||
|
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
//===[ Type definitions ]==================================================
|
//===[ Type definitions ]==================================================
|
||||||
|
|
||||||
//
|
//
|
||||||
// Authentication Token Interface instance data
|
// Authentication Token Interface instance data
|
||||||
//
|
//
|
||||||
typedef struct _AuthTokenIfInstance
|
typedef struct _AuthTokenIfInstance
|
||||||
{
|
{
|
||||||
int refCount;
|
int refCount;
|
||||||
AuthTokenIf authTokenIf;
|
AuthTokenIf authTokenIf;
|
||||||
|
|
||||||
} AuthTokenIfInstance, *PAuthTokenIfInstance;
|
} AuthTokenIfInstance, *PAuthTokenIfInstance;
|
||||||
|
|
||||||
//===[ Function prototypes ]===============================================
|
//===[ Function prototypes ]===============================================
|
||||||
|
|
||||||
//===[ Global variables ]==================================================
|
//===[ Global variables ]==================================================
|
||||||
|
|
||||||
// AuthTokenIf variables
|
// AuthTokenIf variables
|
||||||
static
|
static
|
||||||
int g_numAuthTokenIfObjs = 0;
|
int g_numAuthTokenIfObjs = 0;
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
static
|
static
|
||||||
int SSCS_CALL
|
int SSCS_CALL
|
||||||
AuthTokenIf_AddReference(
|
AuthTokenIf_AddReference(
|
||||||
IN const void *pIfInstance)
|
IN const void *pIfInstance)
|
||||||
//
|
//
|
||||||
// Arguments:
|
// Arguments:
|
||||||
// pIfInstance -
|
// pIfInstance -
|
||||||
// Pointer to interface object.
|
// Pointer to interface object.
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Interface reference count.
|
// Interface reference count.
|
||||||
//
|
//
|
||||||
// Description:
|
// Description:
|
||||||
// Increases interface reference count.
|
// Increases interface reference count.
|
||||||
//
|
//
|
||||||
// L2
|
// L2
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
int refCount;
|
int refCount;
|
||||||
AuthTokenIfInstance *pAuthTokenIfInstance = CONTAINING_RECORD(pIfInstance, AuthTokenIfInstance, authTokenIf);
|
AuthTokenIfInstance *pAuthTokenIfInstance = CONTAINING_RECORD(pIfInstance, AuthTokenIfInstance, authTokenIf);
|
||||||
|
|
||||||
DbgTrace(2, "-AuthTokenIf_AddReference- Start\n", 0);
|
DbgTrace(2, "-AuthTokenIf_AddReference- Start\n", 0);
|
||||||
|
|
||||||
// Increment the reference count on the object
|
// Increment the reference count on the object
|
||||||
pAuthTokenIfInstance->refCount ++;
|
pAuthTokenIfInstance->refCount ++;
|
||||||
refCount = pAuthTokenIfInstance->refCount;
|
refCount = pAuthTokenIfInstance->refCount;
|
||||||
|
|
||||||
DbgTrace(2, "-AuthTokenIf_AddReference- End, refCount = %08X\n", refCount);
|
DbgTrace(2, "-AuthTokenIf_AddReference- End, refCount = %08X\n", refCount);
|
||||||
|
|
||||||
return refCount;
|
return refCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
static
|
static
|
||||||
void SSCS_CALL
|
void SSCS_CALL
|
||||||
AuthTokenIf_ReleaseReference(
|
AuthTokenIf_ReleaseReference(
|
||||||
IN const void *pIfInstance)
|
IN const void *pIfInstance)
|
||||||
//
|
//
|
||||||
// Arguments:
|
// Arguments:
|
||||||
// pIfInstance -
|
// pIfInstance -
|
||||||
// Pointer to interface object.
|
// Pointer to interface object.
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Nothing.
|
// Nothing.
|
||||||
//
|
//
|
||||||
// Description:
|
// Description:
|
||||||
// Decreases interface reference count. The interface is deallocated if
|
// Decreases interface reference count. The interface is deallocated if
|
||||||
// the reference count becomes zero.
|
// the reference count becomes zero.
|
||||||
//
|
//
|
||||||
// L2
|
// L2
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
bool freeObj = false;
|
bool freeObj = false;
|
||||||
AuthTokenIfInstance *pAuthTokenIfInstance = CONTAINING_RECORD(pIfInstance, AuthTokenIfInstance, authTokenIf);
|
AuthTokenIfInstance *pAuthTokenIfInstance = CONTAINING_RECORD(pIfInstance, AuthTokenIfInstance, authTokenIf);
|
||||||
|
|
||||||
DbgTrace(2, "-AuthTokenIf_ReleaseReference- Start\n", 0);
|
DbgTrace(2, "-AuthTokenIf_ReleaseReference- Start\n", 0);
|
||||||
|
|
||||||
// Decrement the reference count on the object and determine if it needs to
|
// Decrement the reference count on the object and determine if it needs to
|
||||||
// be released.
|
// be released.
|
||||||
pAuthTokenIfInstance->refCount --;
|
pAuthTokenIfInstance->refCount --;
|
||||||
if (pAuthTokenIfInstance->refCount == 0)
|
if (pAuthTokenIfInstance->refCount == 0)
|
||||||
{
|
{
|
||||||
// The object needs to be released, forget about it.
|
// The object needs to be released, forget about it.
|
||||||
freeObj = true;
|
freeObj = true;
|
||||||
g_numAuthTokenIfObjs --;
|
g_numAuthTokenIfObjs --;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Free object if necessary
|
// Free object if necessary
|
||||||
if (freeObj)
|
if (freeObj)
|
||||||
free(pAuthTokenIfInstance);
|
free(pAuthTokenIfInstance);
|
||||||
|
|
||||||
DbgTrace(2, "-AuthTokenIf_ReleaseReference- End\n", 0);
|
DbgTrace(2, "-AuthTokenIf_ReleaseReference- End\n", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
CasaStatus SSCS_CALL
|
CasaStatus SSCS_CALL
|
||||||
GET_AUTH_TOKEN_INTERFACE_RTN(
|
GET_AUTH_TOKEN_INTERFACE_RTN(
|
||||||
IN const ConfigIf *pModuleConfigIf,
|
IN const ConfigIf *pModuleConfigIf,
|
||||||
INOUT AuthTokenIf **ppAuthTokenIf)
|
INOUT AuthTokenIf **ppAuthTokenIf)
|
||||||
//
|
//
|
||||||
// Arguments:
|
// Arguments:
|
||||||
// pModuleConfigIf -
|
// pModuleConfigIf -
|
||||||
// Pointer to configuration interface instance for the module.
|
// Pointer to configuration interface instance for the module.
|
||||||
//
|
//
|
||||||
// ppAuthTokenIf -
|
// ppAuthTokenIf -
|
||||||
// Pointer to variable that will receive pointer to AuthTokenIf
|
// Pointer to variable that will receive pointer to AuthTokenIf
|
||||||
// instance.
|
// instance.
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Casa Status
|
// Casa Status
|
||||||
//
|
//
|
||||||
// Description:
|
// Description:
|
||||||
// Gets authentication token interface instance.
|
// Gets authentication token interface instance.
|
||||||
//
|
//
|
||||||
// L2
|
// L2
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
CasaStatus retStatus;
|
CasaStatus retStatus;
|
||||||
AuthTokenIfInstance *pAuthTokenIfInstance;
|
AuthTokenIfInstance *pAuthTokenIfInstance;
|
||||||
char *pDebugLevelSetting;
|
char *pDebugLevelSetting;
|
||||||
|
|
||||||
DbgTrace(1, "-GetAuthTokenInterface- Start\n", 0);
|
DbgTrace(1, "-GetAuthTokenInterface- Start\n", 0);
|
||||||
|
|
||||||
// Validate input parameters
|
// Validate input parameters
|
||||||
if (pModuleConfigIf == NULL
|
if (pModuleConfigIf == NULL
|
||||||
|| ppAuthTokenIf == NULL)
|
|| ppAuthTokenIf == NULL)
|
||||||
{
|
{
|
||||||
DbgTrace(0, "-GetAuthTokenInterface- Invalid input parameter\n", 0);
|
DbgTrace(0, "-GetAuthTokenInterface- Invalid input parameter\n", 0);
|
||||||
|
|
||||||
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
|
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
|
||||||
CASA_FACILITY_PWTOKEN,
|
CASA_FACILITY_PWTOKEN,
|
||||||
CASA_STATUS_INVALID_PARAMETER);
|
CASA_STATUS_INVALID_PARAMETER);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if a DebugLevel has been configured
|
// Check if a DebugLevel has been configured
|
||||||
pDebugLevelSetting = pModuleConfigIf->getEntryValue(pModuleConfigIf, "DebugLevel");
|
pDebugLevelSetting = pModuleConfigIf->getEntryValue(pModuleConfigIf, "DebugLevel");
|
||||||
if (pDebugLevelSetting != NULL)
|
if (pDebugLevelSetting != NULL)
|
||||||
@ -177,44 +177,44 @@ GET_AUTH_TOKEN_INTERFACE_RTN(
|
|||||||
// Free the buffer holding the debug level
|
// Free the buffer holding the debug level
|
||||||
free(pDebugLevelSetting);
|
free(pDebugLevelSetting);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allocate space for the interface instance
|
// Allocate space for the interface instance
|
||||||
pAuthTokenIfInstance = malloc(sizeof(*pAuthTokenIfInstance));
|
pAuthTokenIfInstance = malloc(sizeof(*pAuthTokenIfInstance));
|
||||||
if (pAuthTokenIfInstance)
|
if (pAuthTokenIfInstance)
|
||||||
{
|
{
|
||||||
// Initialize the interface instance data
|
// Initialize the interface instance data
|
||||||
pAuthTokenIfInstance->refCount = 1;
|
pAuthTokenIfInstance->refCount = 1;
|
||||||
pAuthTokenIfInstance->authTokenIf.addReference = AuthTokenIf_AddReference;
|
pAuthTokenIfInstance->authTokenIf.addReference = AuthTokenIf_AddReference;
|
||||||
pAuthTokenIfInstance->authTokenIf.releaseReference = AuthTokenIf_ReleaseReference;
|
pAuthTokenIfInstance->authTokenIf.releaseReference = AuthTokenIf_ReleaseReference;
|
||||||
pAuthTokenIfInstance->authTokenIf.getAuthToken = AuthTokenIf_GetAuthToken;
|
pAuthTokenIfInstance->authTokenIf.getAuthToken = AuthTokenIf_GetAuthToken;
|
||||||
|
|
||||||
// Keep track of this object
|
// Keep track of this object
|
||||||
g_numAuthTokenIfObjs ++;
|
g_numAuthTokenIfObjs ++;
|
||||||
|
|
||||||
// Return the interface to the caller
|
// Return the interface to the caller
|
||||||
*ppAuthTokenIf = &pAuthTokenIfInstance->authTokenIf;
|
*ppAuthTokenIf = &pAuthTokenIfInstance->authTokenIf;
|
||||||
|
|
||||||
// Success
|
// Success
|
||||||
retStatus = CASA_STATUS_SUCCESS;
|
retStatus = CASA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DbgTrace(0, "-GetAuthTokenInterface- Buffer allocation failure\n", 0);
|
DbgTrace(0, "-GetAuthTokenInterface- Buffer allocation failure\n", 0);
|
||||||
|
|
||||||
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
|
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
|
||||||
CASA_FACILITY_PWTOKEN,
|
CASA_FACILITY_PWTOKEN,
|
||||||
CASA_STATUS_INSUFFICIENT_RESOURCES);
|
CASA_STATUS_INSUFFICIENT_RESOURCES);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
DbgTrace(1, "-GetAuthTokenInterface- End, retStatus = %08X\n", retStatus);
|
DbgTrace(1, "-GetAuthTokenInterface- End, retStatus = %08X\n", retStatus);
|
||||||
|
|
||||||
return retStatus;
|
return retStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
|
|
||||||
|
@ -85,10 +85,10 @@ DecodeData(
|
|||||||
INOUT int32_t *pDataLen);
|
INOUT int32_t *pDataLen);
|
||||||
|
|
||||||
extern
|
extern
|
||||||
int
|
int
|
||||||
dtoul(
|
dtoul(
|
||||||
IN const char *cp,
|
IN const char *cp,
|
||||||
IN const int len);
|
IN const int len);
|
||||||
|
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="true"
|
Detect64BitPortabilityProblems="true"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
|
CallingConvention="2"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
@ -1,107 +1,107 @@
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
|
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
* License as published by the Free Software Foundation; version 2.1
|
* License as published by the Free Software Foundation; version 2.1
|
||||||
* of the License.
|
* of the License.
|
||||||
*
|
*
|
||||||
* This library is distributed in the hope that it will be useful,
|
* This library is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* Library Lesser General Public License for more details.
|
* Library Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, Novell, Inc.
|
* License along with this library; if not, Novell, Inc.
|
||||||
*
|
*
|
||||||
* To contact Novell about this file by physical or electronic mail,
|
* To contact Novell about this file by physical or electronic mail,
|
||||||
* you may find current contact information at www.novell.com.
|
* you may find current contact information at www.novell.com.
|
||||||
*
|
*
|
||||||
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||||
*
|
*
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
//===[ Include files ]=====================================================
|
//===[ Include files ]=====================================================
|
||||||
|
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
#include <shlwapi.h>
|
#include <shlwapi.h>
|
||||||
#include "casa_c_authtoken_ex.h"
|
#include "casa_c_authtoken_ex.h"
|
||||||
|
|
||||||
//===[ External data ]=====================================================
|
//===[ External data ]=====================================================
|
||||||
extern
|
extern
|
||||||
char clientConfigFolderPartialPath[];
|
char clientConfigFolderPartialPath[];
|
||||||
|
|
||||||
extern
|
extern
|
||||||
char mechConfigFolderPartialPath[];
|
char mechConfigFolderPartialPath[];
|
||||||
|
|
||||||
//===[ Manifest constants ]================================================
|
//===[ Manifest constants ]================================================
|
||||||
|
|
||||||
//===[ Type definitions ]==================================================
|
//===[ Type definitions ]==================================================
|
||||||
|
|
||||||
//===[ Function prototypes ]===============================================
|
//===[ Function prototypes ]===============================================
|
||||||
|
|
||||||
//===[ Global variables ]==================================================
|
//===[ Global variables ]==================================================
|
||||||
|
|
||||||
UINT32 g_ulCount = 0;
|
UINT32 g_ulCount = 0;
|
||||||
UINT32 g_ulLock = 0;
|
UINT32 g_ulLock = 0;
|
||||||
HANDLE g_hModule;
|
HANDLE g_hModule;
|
||||||
HANDLE g_hModuleMutex;
|
HANDLE g_hModuleMutex;
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
CasaStatus SSCS_CALL
|
CasaStatus SSCS_CALL
|
||||||
ObtainAuthTokenEx(
|
ObtainAuthTokenEx(
|
||||||
IN const char *pServiceName,
|
IN const char *pServiceName,
|
||||||
IN const char *pHostName,
|
IN const char *pHostName,
|
||||||
INOUT char *pAuthTokenBuf,
|
INOUT char *pAuthTokenBuf,
|
||||||
INOUT int *pAuthTokenBufLen,
|
INOUT int *pAuthTokenBufLen,
|
||||||
IN void *pCredStoreScope)
|
IN void *pCredStoreScope)
|
||||||
//
|
//
|
||||||
// Arguments:
|
// Arguments:
|
||||||
// pServiceName -
|
// pServiceName -
|
||||||
// Pointer to NULL terminated string that contains the
|
// Pointer to NULL terminated string that contains the
|
||||||
// name of the service to which the client is trying to
|
// name of the service to which the client is trying to
|
||||||
// authenticate.
|
// authenticate.
|
||||||
//
|
//
|
||||||
// pHostName -
|
// pHostName -
|
||||||
// Pointer to NULL terminated string that contains the
|
// Pointer to NULL terminated string that contains the
|
||||||
// name of the host where resides the service to which the
|
// name of the host where resides the service to which the
|
||||||
// client is trying to authenticate. Note that the name
|
// client is trying to authenticate. Note that the name
|
||||||
// can either be a DNS name or a dotted IP address.
|
// can either be a DNS name or a dotted IP address.
|
||||||
//
|
//
|
||||||
// pAuthTokenBuf -
|
// pAuthTokenBuf -
|
||||||
// Pointer to buffer that will receive the authentication
|
// Pointer to buffer that will receive the authentication
|
||||||
// token. The length of this buffer is specified by the
|
// token. The length of this buffer is specified by the
|
||||||
// pAuthTokenBufLen parameter. Note that the the authentication
|
// pAuthTokenBufLen parameter. Note that the the authentication
|
||||||
// token will be in the form of a NULL terminated string.
|
// token will be in the form of a NULL terminated string.
|
||||||
//
|
//
|
||||||
// pAuthTokenBufLen -
|
// pAuthTokenBufLen -
|
||||||
// Pointer to integer that contains the length of the
|
// Pointer to integer that contains the length of the
|
||||||
// buffer pointed at by pAuthTokenBuf. Upon return of the
|
// buffer pointed at by pAuthTokenBuf. Upon return of the
|
||||||
// function, the integer will contain the actual length
|
// function, the integer will contain the actual length
|
||||||
// of the authentication token if the function successfully
|
// of the authentication token if the function successfully
|
||||||
// completes or the buffer length required if the function
|
// completes or the buffer length required if the function
|
||||||
// fails because the buffer pointed at by pAuthTokenBuf is
|
// fails because the buffer pointed at by pAuthTokenBuf is
|
||||||
// not large enough.
|
// not large enough.
|
||||||
//
|
//
|
||||||
// pCredStoreScope -
|
// pCredStoreScope -
|
||||||
// Pointer to CASA structure for scoping credential store access
|
// Pointer to CASA structure for scoping credential store access
|
||||||
// to specific users. This can only be leveraged by applications
|
// to specific users. This can only be leveraged by applications
|
||||||
// running in the context of System.
|
// running in the context of System.
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Casa Status
|
// Casa Status
|
||||||
//
|
//
|
||||||
// Description:
|
// Description:
|
||||||
// Get authentication token to authenticate user to specified
|
// Get authentication token to authenticate user to specified
|
||||||
// service at host. The user is scoped using the info associated
|
// service at host. The user is scoped using the info associated
|
||||||
// with the magic cookie.
|
// with the magic cookie.
|
||||||
//
|
//
|
||||||
// L2
|
// L2
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
CasaStatus retStatus;
|
CasaStatus retStatus;
|
||||||
|
|
||||||
DbgTrace(1, "-ObtainAuthTokenEx- Start\n", 0);
|
DbgTrace(1, "-ObtainAuthTokenEx- Start\n", 0);
|
||||||
@ -116,118 +116,118 @@ ObtainAuthTokenEx(
|
|||||||
DbgTrace(1, "-ObtainAuthTokenEx- End, retStatus = %08X\n", retStatus);
|
DbgTrace(1, "-ObtainAuthTokenEx- End, retStatus = %08X\n", retStatus);
|
||||||
|
|
||||||
return retStatus;
|
return retStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
BOOL APIENTRY DllMain(
|
BOOL APIENTRY DllMain(
|
||||||
HANDLE hModule,
|
HANDLE hModule,
|
||||||
DWORD ul_reason_for_call,
|
DWORD ul_reason_for_call,
|
||||||
LPVOID lpReserved
|
LPVOID lpReserved
|
||||||
)
|
)
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
BOOL retStatus = TRUE;
|
BOOL retStatus = TRUE;
|
||||||
char programFilesFolder[MAX_PATH];
|
char programFilesFolder[MAX_PATH];
|
||||||
|
|
||||||
switch (ul_reason_for_call)
|
switch (ul_reason_for_call)
|
||||||
{
|
{
|
||||||
case DLL_PROCESS_ATTACH:
|
case DLL_PROCESS_ATTACH:
|
||||||
{
|
{
|
||||||
g_hModule = hModule;
|
g_hModule = hModule;
|
||||||
|
|
||||||
// Setup the path to the client and auth mechanisms config folders
|
// Setup the path to the client and auth mechanisms config folders
|
||||||
if (SHGetFolderPath(NULL,
|
if (SHGetFolderPath(NULL,
|
||||||
CSIDL_PROGRAM_FILES,
|
CSIDL_PROGRAM_FILES,
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
programFilesFolder) == 0)
|
programFilesFolder) == 0)
|
||||||
{
|
{
|
||||||
strcpy(clientConfigFolder, programFilesFolder);
|
strcpy(clientConfigFolder, programFilesFolder);
|
||||||
PathAppend(clientConfigFolder, clientConfigFolderPartialPath);
|
PathAppend(clientConfigFolder, clientConfigFolderPartialPath);
|
||||||
|
|
||||||
strcpy(mechConfigFolder, programFilesFolder);
|
strcpy(mechConfigFolder, programFilesFolder);
|
||||||
PathAppend(mechConfigFolder, mechConfigFolderPartialPath);
|
PathAppend(mechConfigFolder, mechConfigFolderPartialPath);
|
||||||
|
|
||||||
// Allocate module mutex
|
// Allocate module mutex
|
||||||
g_hModuleMutex = CreateMutex(NULL, FALSE, NULL);
|
g_hModuleMutex = CreateMutex(NULL, FALSE, NULL);
|
||||||
if (! g_hModuleMutex)
|
if (! g_hModuleMutex)
|
||||||
{
|
{
|
||||||
// Module initialization failed
|
// Module initialization failed
|
||||||
OutputDebugString("CASAAUTH -DllMain- Failed to create mutex\n");
|
OutputDebugString("CASAAUTH -DllMain- Failed to create mutex\n");
|
||||||
retStatus = FALSE;
|
retStatus = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Failed to obtain the Program Files path
|
// Failed to obtain the Program Files path
|
||||||
OutputDebugString("CASAAUTH -DllMain- Failed to obtain the Program Files path\n");
|
OutputDebugString("CASAAUTH -DllMain- Failed to obtain the Program Files path\n");
|
||||||
retStatus = FALSE;
|
retStatus = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DLL_THREAD_ATTACH:
|
case DLL_THREAD_ATTACH:
|
||||||
{
|
{
|
||||||
g_hModule = hModule;
|
g_hModule = hModule;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DLL_THREAD_DETACH:
|
case DLL_THREAD_DETACH:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DLL_PROCESS_DETACH:
|
case DLL_PROCESS_DETACH:
|
||||||
{
|
{
|
||||||
/* Don't uninitialize on windows
|
/* Don't uninitialize on windows
|
||||||
tbd
|
tbd
|
||||||
*/
|
*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return retStatus;
|
return retStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//++=======================================================================
|
//++=======================================================================
|
||||||
//
|
//
|
||||||
// DllCanUnloadNow
|
// DllCanUnloadNow
|
||||||
//
|
//
|
||||||
// Synopsis
|
// Synopsis
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
STDAPI
|
STDAPI
|
||||||
DllCanUnloadNow()
|
DllCanUnloadNow()
|
||||||
//
|
//
|
||||||
// Input Arguments
|
// Input Arguments
|
||||||
//
|
//
|
||||||
// Ouput Arguments
|
// Ouput Arguments
|
||||||
//
|
//
|
||||||
// Return Value
|
// Return Value
|
||||||
// S_OK The DLL can be unloaded.
|
// S_OK The DLL can be unloaded.
|
||||||
// S_FALSE The DLL cannot be unloaded now.
|
// S_FALSE The DLL cannot be unloaded now.
|
||||||
//
|
//
|
||||||
// Description
|
// Description
|
||||||
// An Exported Function.
|
// An Exported Function.
|
||||||
// DLLs that support the OLE Component Object Model (COM) should implement
|
// DLLs that support the OLE Component Object Model (COM) should implement
|
||||||
// and export DllCanUnloadNow.
|
// and export DllCanUnloadNow.
|
||||||
// A call to DllCanUnloadNow determines whether the DLL from which it is
|
// A call to DllCanUnloadNow determines whether the DLL from which it is
|
||||||
// exported is still in use. A DLL is no longer in use when it is not
|
// exported is still in use. A DLL is no longer in use when it is not
|
||||||
// managing any existing objects (the reference count on all of its objects
|
// managing any existing objects (the reference count on all of its objects
|
||||||
// is 0).
|
// is 0).
|
||||||
// DllCanUnloadNow returns S_FALSE if there are any existing references to
|
// DllCanUnloadNow returns S_FALSE if there are any existing references to
|
||||||
// objects that the DLL manages.
|
// objects that the DLL manages.
|
||||||
//
|
//
|
||||||
// Environment
|
// Environment
|
||||||
//
|
//
|
||||||
// See Also
|
// See Also
|
||||||
//
|
//
|
||||||
//=======================================================================--
|
//=======================================================================--
|
||||||
{
|
{
|
||||||
// tbd
|
// tbd
|
||||||
return ((g_ulCount == 0 && g_ulLock == 0) ? S_OK : S_FALSE);
|
return ((g_ulCount == 0 && g_ulLock == 0) ? S_OK : S_FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
|
|
||||||
|
@ -15,44 +15,44 @@
|
|||||||
{
|
{
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_0505C87EECE146AF8F0A3C894F185425"
|
"MsmKey" = "8:_4744A4EB6B904673B8897294AB8C6162"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_1F1797B2A5414369AA88069D5E88BC5F"
|
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_219AE52645264DED864B7ACD8A4E4DF8"
|
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_313DE095D13281AF91A64E3F3D472413"
|
|
||||||
"OwnerKey" = "8:_219AE52645264DED864B7ACD8A4E4DF8"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_4E73B42DD7BB4E5C8B309F197D94C7F2"
|
"MsmKey" = "8:_4E73B42DD7BB4E5C8B309F197D94C7F2"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_92336612AC7D083F97ED302BB7674A2D"
|
"MsmKey" = "8:_50C15B4896B94AAD8CF7A676F541BD89"
|
||||||
"OwnerKey" = "8:_0505C87EECE146AF8F0A3C894F185425"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_92336612AC7D083F97ED302BB7674A2D"
|
"MsmKey" = "8:_71C343EBC4935F8914C3145115EDEC4A"
|
||||||
"OwnerKey" = "8:_1F1797B2A5414369AA88069D5E88BC5F"
|
"OwnerKey" = "8:_C1C37E2154994C29B02FDD9C90635B26"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_71C343EBC4935F8914C3145115EDEC4A"
|
||||||
|
"OwnerKey" = "8:_8E623C85FD4143F3B09460457E8ED6CA"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_7F67D8557F592D43809C494C4B7E2552"
|
||||||
|
"OwnerKey" = "8:_50C15B4896B94AAD8CF7A676F541BD89"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_8E623C85FD4143F3B09460457E8ED6CA"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
@ -63,8 +63,8 @@
|
|||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_E35F46E021184676375C6223ED1BDFCF"
|
"MsmKey" = "8:_C1C37E2154994C29B02FDD9C90635B26"
|
||||||
"OwnerKey" = "8:_0505C87EECE146AF8F0A3C894F185425"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
@ -73,6 +73,18 @@
|
|||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
}
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_FE85A5D48B5A23F3077871E9FD2378DE"
|
||||||
|
"OwnerKey" = "8:_C1C37E2154994C29B02FDD9C90635B26"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_UNDEFINED"
|
||||||
|
"OwnerKey" = "8:_4744A4EB6B904673B8897294AB8C6162"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"Configurations"
|
"Configurations"
|
||||||
{
|
{
|
||||||
@ -144,26 +156,6 @@
|
|||||||
}
|
}
|
||||||
"File"
|
"File"
|
||||||
{
|
{
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_313DE095D13281AF91A64E3F3D472413"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:Secur32.dll"
|
|
||||||
"TargetName" = "8:Secur32.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_F5F5F604B81645F8B6463F7A7D6A53AD"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:TRUE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4E73B42DD7BB4E5C8B309F197D94C7F2"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4E73B42DD7BB4E5C8B309F197D94C7F2"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\..\\..\\lib\\client.conf"
|
"SourcePath" = "8:..\\..\\..\\lib\\client.conf"
|
||||||
@ -184,12 +176,32 @@
|
|||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_92336612AC7D083F97ED302BB7674A2D"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_71C343EBC4935F8914C3145115EDEC4A"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:micasa.dll"
|
"SourcePath" = "8:micasa.dll"
|
||||||
"TargetName" = "8:micasa.dll"
|
"TargetName" = "8:micasa.dll"
|
||||||
"Tag" = "8:"
|
"Tag" = "8:"
|
||||||
"Folder" = "8:_F5F5F604B81645F8B6463F7A7D6A53AD"
|
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:TRUE"
|
||||||
|
"IsDependency" = "11:TRUE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
}
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7F67D8557F592D43809C494C4B7E2552"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:Secur32.dll"
|
||||||
|
"TargetName" = "8:Secur32.dll"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
|
||||||
"Condition" = "8:"
|
"Condition" = "8:"
|
||||||
"Transitive" = "11:FALSE"
|
"Transitive" = "11:FALSE"
|
||||||
"Vital" = "11:TRUE"
|
"Vital" = "11:TRUE"
|
||||||
@ -224,26 +236,6 @@
|
|||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E35F46E021184676375C6223ED1BDFCF"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:WINHTTP.dll"
|
|
||||||
"TargetName" = "8:WINHTTP.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_F5F5F604B81645F8B6463F7A7D6A53AD"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:TRUE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F0C46E8F1B5048179188E62D91BA91EB"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F0C46E8F1B5048179188E62D91BA91EB"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\..\\..\\lib\\mechanisms\\pwd\\windows\\PwdAuthenticate.conf"
|
"SourcePath" = "8:..\\..\\..\\lib\\mechanisms\\pwd\\windows\\PwdAuthenticate.conf"
|
||||||
@ -264,6 +256,26 @@
|
|||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FE85A5D48B5A23F3077871E9FD2378DE"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:WINHTTP.dll"
|
||||||
|
"TargetName" = "8:WINHTTP.dll"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:TRUE"
|
||||||
|
"IsDependency" = "11:TRUE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"FileType"
|
"FileType"
|
||||||
{
|
{
|
||||||
@ -419,12 +431,12 @@
|
|||||||
}
|
}
|
||||||
"ProjectOutput"
|
"ProjectOutput"
|
||||||
{
|
{
|
||||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0505C87EECE146AF8F0A3C894F185425"
|
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4744A4EB6B904673B8897294AB8C6162"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\..\\..\\lib\\windows\\debug\\authtoken.dll"
|
"SourcePath" = "8:..\\..\\..\\csharp-api\\Novell.Casa.Authtoken\\obj\\Debug\\Novell.Casa.Client.Auth.dll"
|
||||||
"TargetName" = "8:"
|
"TargetName" = "8:"
|
||||||
"Tag" = "8:"
|
"Tag" = "8:"
|
||||||
"Folder" = "8:_F5F5F604B81645F8B6463F7A7D6A53AD"
|
"Folder" = "8:_8E0BBDD021EA45308BD98380F28EB7F6"
|
||||||
"Condition" = "8:"
|
"Condition" = "8:"
|
||||||
"Transitive" = "11:FALSE"
|
"Transitive" = "11:FALSE"
|
||||||
"Vital" = "11:TRUE"
|
"Vital" = "11:TRUE"
|
||||||
@ -441,46 +453,18 @@
|
|||||||
"ProjectOutputGroupRegister" = "3:1"
|
"ProjectOutputGroupRegister" = "3:1"
|
||||||
"OutputConfiguration" = "8:"
|
"OutputConfiguration" = "8:"
|
||||||
"OutputGroupCanonicalName" = "8:Built"
|
"OutputGroupCanonicalName" = "8:Built"
|
||||||
"OutputProjectGuid" = "8:{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}"
|
"OutputProjectGuid" = "8:{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}"
|
||||||
"ShowKeyOutput" = "11:FALSE"
|
"ShowKeyOutput" = "11:TRUE"
|
||||||
"ExcludeFilters"
|
"ExcludeFilters"
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1F1797B2A5414369AA88069D5E88BC5F"
|
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_50C15B4896B94AAD8CF7A676F541BD89"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\..\\..\\lib\\mechanisms\\pwd\\windows\\debug\\pwmech.dll"
|
"SourcePath" = "8:..\\..\\..\\lib\\mechanisms\\krb5\\windows\\Debug\\krb5mech.dll"
|
||||||
"TargetName" = "8:"
|
"TargetName" = "8:"
|
||||||
"Tag" = "8:"
|
"Tag" = "8:"
|
||||||
"Folder" = "8:_F5F5F604B81645F8B6463F7A7D6A53AD"
|
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:FALSE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
"ProjectOutputGroupRegister" = "3:1"
|
|
||||||
"OutputConfiguration" = "8:"
|
|
||||||
"OutputGroupCanonicalName" = "8:Built"
|
|
||||||
"OutputProjectGuid" = "8:{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}"
|
|
||||||
"ShowKeyOutput" = "11:FALSE"
|
|
||||||
"ExcludeFilters"
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_219AE52645264DED864B7ACD8A4E4DF8"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:..\\..\\..\\lib\\mechanisms\\krb5\\windows\\debug\\krb5mech.dll"
|
|
||||||
"TargetName" = "8:"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_F5F5F604B81645F8B6463F7A7D6A53AD"
|
|
||||||
"Condition" = "8:"
|
"Condition" = "8:"
|
||||||
"Transitive" = "11:FALSE"
|
"Transitive" = "11:FALSE"
|
||||||
"Vital" = "11:TRUE"
|
"Vital" = "11:TRUE"
|
||||||
@ -498,7 +482,63 @@
|
|||||||
"OutputConfiguration" = "8:"
|
"OutputConfiguration" = "8:"
|
||||||
"OutputGroupCanonicalName" = "8:Built"
|
"OutputGroupCanonicalName" = "8:Built"
|
||||||
"OutputProjectGuid" = "8:{5499F624-F371-4559-B4C2-A484BCE892FD}"
|
"OutputProjectGuid" = "8:{5499F624-F371-4559-B4C2-A484BCE892FD}"
|
||||||
"ShowKeyOutput" = "11:FALSE"
|
"ShowKeyOutput" = "11:TRUE"
|
||||||
|
"ExcludeFilters"
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_8E623C85FD4143F3B09460457E8ED6CA"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:..\\..\\..\\lib\\mechanisms\\pwd\\windows\\Debug\\pwmech.dll"
|
||||||
|
"TargetName" = "8:"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:FALSE"
|
||||||
|
"IsDependency" = "11:FALSE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
"ProjectOutputGroupRegister" = "3:1"
|
||||||
|
"OutputConfiguration" = "8:"
|
||||||
|
"OutputGroupCanonicalName" = "8:Built"
|
||||||
|
"OutputProjectGuid" = "8:{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}"
|
||||||
|
"ShowKeyOutput" = "11:TRUE"
|
||||||
|
"ExcludeFilters"
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C1C37E2154994C29B02FDD9C90635B26"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:..\\..\\..\\lib\\windows\\Debug\\authtoken.dll"
|
||||||
|
"TargetName" = "8:"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:FALSE"
|
||||||
|
"IsDependency" = "11:FALSE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
"ProjectOutputGroupRegister" = "3:1"
|
||||||
|
"OutputConfiguration" = "8:"
|
||||||
|
"OutputGroupCanonicalName" = "8:Built"
|
||||||
|
"OutputProjectGuid" = "8:{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}"
|
||||||
|
"ShowKeyOutput" = "11:TRUE"
|
||||||
"ExcludeFilters"
|
"ExcludeFilters"
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -13,12 +13,42 @@
|
|||||||
"SccProvider" = "8:"
|
"SccProvider" = "8:"
|
||||||
"Hierarchy"
|
"Hierarchy"
|
||||||
{
|
{
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_46B706EF7F254AE89B820252D7E5A634"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_6C3DD45AD8C1483F86D675A90FED869A"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_E81BA356D9F8490196AD0D8DFCEE3C65"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_F0E27FD8FB8442078E86B253A1D4FF5C"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_FD0A8D57CFD64B5CADAF19B3B9BCB7B8"
|
"MsmKey" = "8:_FD0A8D57CFD64B5CADAF19B3B9BCB7B8"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
}
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_UNDEFINED"
|
||||||
|
"OwnerKey" = "8:_6C3DD45AD8C1483F86D675A90FED869A"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"Configurations"
|
"Configurations"
|
||||||
{
|
{
|
||||||
@ -112,16 +142,139 @@
|
|||||||
{
|
{
|
||||||
"LaunchCondition"
|
"LaunchCondition"
|
||||||
{
|
{
|
||||||
|
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_CE9EE2C4C22F40F097FCFC2DF54026CA"
|
||||||
|
{
|
||||||
|
"Name" = "8:.NET Framework"
|
||||||
|
"Message" = "8:[VSDNETMSG]"
|
||||||
|
"Version" = "8:2.0.50727"
|
||||||
|
"AllowLaterVersions" = "11:FALSE"
|
||||||
|
"InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=9832"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"File"
|
"File"
|
||||||
{
|
{
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_46B706EF7F254AE89B820252D7E5A634"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:..\\..\\..\\lib\\windows\\authtoken.lib"
|
||||||
|
"TargetName" = "8:authtoken.lib"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_031A08D93F304AE690C6F4EF4BBC46D6"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:FALSE"
|
||||||
|
"IsDependency" = "11:FALSE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
}
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E81BA356D9F8490196AD0D8DFCEE3C65"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:..\\..\\..\\include\\casa_c_authtoken.h"
|
||||||
|
"TargetName" = "8:casa_c_authtoken.h"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_1EBAF38843F146888065150901409A34"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:FALSE"
|
||||||
|
"IsDependency" = "11:FALSE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
}
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F0E27FD8FB8442078E86B253A1D4FF5C"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:..\\..\\..\\include\\windows\\casa_c_authtoken_ex.h"
|
||||||
|
"TargetName" = "8:casa_c_authtoken_ex.h"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_1EBAF38843F146888065150901409A34"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:FALSE"
|
||||||
|
"IsDependency" = "11:FALSE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"FileType"
|
"FileType"
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
"Folder"
|
"Folder"
|
||||||
{
|
{
|
||||||
|
"{1525181F-901A-416C-8A58-119130FE478E}:_086CD404D81144F49C696CB67821A786"
|
||||||
|
{
|
||||||
|
"Name" = "8:#1912"
|
||||||
|
"AlwaysCreate" = "11:FALSE"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Property" = "8:ProgramFilesFolder"
|
||||||
|
"Folders"
|
||||||
|
{
|
||||||
|
"{9EF0B969-E518-4E46-987F-47570745A589}:_C18B52CC94CC4F4787402522D71091E6"
|
||||||
|
{
|
||||||
|
"Name" = "8:Novell"
|
||||||
|
"AlwaysCreate" = "11:FALSE"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Property" = "8:_2E77FB52104B4FEA85F5AC6F3FDF0578"
|
||||||
|
"Folders"
|
||||||
|
{
|
||||||
|
"{9EF0B969-E518-4E46-987F-47570745A589}:_04FF82461AF84E0384C69DAB48F3F10B"
|
||||||
|
{
|
||||||
|
"Name" = "8:CASA"
|
||||||
|
"AlwaysCreate" = "11:FALSE"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Property" = "8:_7B540A0907FE473E9586530424711B0A"
|
||||||
|
"Folders"
|
||||||
|
{
|
||||||
|
"{9EF0B969-E518-4E46-987F-47570745A589}:_031A08D93F304AE690C6F4EF4BBC46D6"
|
||||||
|
{
|
||||||
|
"Name" = "8:lib"
|
||||||
|
"AlwaysCreate" = "11:FALSE"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Property" = "8:_1F4992C0E7064A248F2957569F468825"
|
||||||
|
"Folders"
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"{9EF0B969-E518-4E46-987F-47570745A589}:_1EBAF38843F146888065150901409A34"
|
||||||
|
{
|
||||||
|
"Name" = "8:include"
|
||||||
|
"AlwaysCreate" = "11:FALSE"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Property" = "8:_EAF3E4781AE6475F9A786D5C899D6139"
|
||||||
|
"Folders"
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
"{1525181F-901A-416C-8A58-119130FE478E}:_2774FA6C0DA14A308EE37D42F79E1E12"
|
"{1525181F-901A-416C-8A58-119130FE478E}:_2774FA6C0DA14A308EE37D42F79E1E12"
|
||||||
{
|
{
|
||||||
"Name" = "8:#1919"
|
"Name" = "8:#1919"
|
||||||
@ -690,6 +843,34 @@
|
|||||||
}
|
}
|
||||||
"ProjectOutput"
|
"ProjectOutput"
|
||||||
{
|
{
|
||||||
|
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6C3DD45AD8C1483F86D675A90FED869A"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:..\\..\\..\\csharp-api\\Novell.Casa.Authtoken\\obj\\Debug\\Novell.Casa.Client.Auth.dll"
|
||||||
|
"TargetName" = "8:"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_031A08D93F304AE690C6F4EF4BBC46D6"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:FALSE"
|
||||||
|
"IsDependency" = "11:FALSE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
"ProjectOutputGroupRegister" = "3:1"
|
||||||
|
"OutputConfiguration" = "8:"
|
||||||
|
"OutputGroupCanonicalName" = "8:Built"
|
||||||
|
"OutputProjectGuid" = "8:{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}"
|
||||||
|
"ShowKeyOutput" = "11:TRUE"
|
||||||
|
"ExcludeFilters"
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FD0A8D57CFD64B5CADAF19B3B9BCB7B8"
|
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FD0A8D57CFD64B5CADAF19B3B9BCB7B8"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\authtokenclientdevel_msm\\Debug\\authtokenclientdevel-msm.msm"
|
"SourcePath" = "8:..\\authtokenclientdevel_msm\\Debug\\authtokenclientdevel-msm.msm"
|
||||||
|
Loading…
Reference in New Issue
Block a user