Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/**********************************************************************/ /** Microsoft Passport **/ /** Copyright(c) Microsoft Corporation, 1999 - 2001 **/ /**********************************************************************/
/*
PassportConfiguration.h handles both nexus config and registry config
FILE HISTORY:
*/ // PassportConfiguration.h: interface for the CPassportConfiguration class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PASSPORTCONFIGURATION_H__74EB2517_E239_11D2_95E9_00C04F8E7A70__INCLUDED_)
#define AFX_PASSPORTCONFIGURATION_H__74EB2517_E239_11D2_95E9_00C04F8E7A70__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <map>
#include "nexus.h"
#include "RegistryConfig.h"
#include "NexusConfig.h"
#include "PassportLock.hpp"
#define PRCONFIG "PARTNER"
typedef PtStlMap<LPSTR, CRegistryConfig*> REGCONFIGMAP;
bool less<LPSTR>::operator()(const LPSTR& x, const LPSTR& y) const { return (_strcmpi(x,y) < 0); };
class CPassportConfiguration : public ICCDUpdate, public IConfigurationUpdate { public: CPassportConfiguration(); virtual ~CPassportConfiguration();
// You must call release yourself...
CRegistryConfig* checkoutRegistryConfig(LPSTR szHost = NULL); CRegistryConfig* checkoutRegistryConfigBySite(LPSTR szSiteName); CNexusConfig* checkoutNexusConfig();
BOOL isValid(); LPWSTR getFailureString(); void CCDUpdatedA(LPCSTR pszCCDName, IXMLDocument* piStream) { NexusConfigUpdated(piStream); }
void CCDUpdatedW(LPCWSTR pszCCDName, IXMLDocument* piStream) { NexusConfigUpdated(piStream); }
void LocalConfigurationUpdated();
BOOL UpdateNow(BOOL forceFetch = TRUE);
// two phase update
BOOL PrepareUpdate(BOOL forceFetch = TRUE); BOOL CommitUpdate(void);
void Dump(BSTR* pbstrDump);
BOOL HasSites(void);
protected: void NexusConfigUpdated(IXMLDocument *pi);
BOOL TakeRegistrySnapshot(CRegistryConfig** ppRegConfig, REGCONFIGMAP** ppConfigMap); BOOL ApplyRegistrySnapshot(CRegistryConfig* pRegConfig, REGCONFIGMAP* pConfigMap);
BOOL TakeNexusSnapshot(CNexusConfig** ppNexusConfig, BOOL bForceFetch); BOOL ApplyNexusSnapshot(CNexusConfig* pNexusConfig);
void getReadLock(PassportLock &l) { l.acquire(); } void releaseReadLock(PassportLock &l) { l.release(); } void getWriteLock(PassportLock &l) { l.acquire(); } void releaseWriteLock(PassportLock &l) { l.release(); } BOOL IsIPAddress(LPSTR szSiteName);
REGCONFIGMAP *m_ConfigMap, *m_lastConfigMap, *m_ConfigMapPending; CRegistryConfig *m_rDefault, *m_rlastDefault, *m_rPending; CNexusConfig *m_n, *m_nlast, *m_nPending; PassportLock m_lock; HANDLE m_nUpdate, m_rUpdate; time_t m_lastAttempt; bool m_bUpdateInProgress; };
#endif // !defined(AFX_PASSPORTCONFIGURATION_H__74EB2517_E239_11D2_95E9_00C04F8E7A70__INCLUDED_)
|