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.
|
|
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) Microsoft Corporation
//
// SYNOPSIS
//
// Defines the class BaseCampHostBase.
//
///////////////////////////////////////////////////////////////////////////////
#include "Precompiled.h"
#include "ias.h"
#include "basecamp.h"
#include "ControlBlock.h"
STDMETHODIMP BaseCampHostBase::Initialize() { DWORD error = extensions.Load(point); return HRESULT_FROM_WIN32(error); }
STDMETHODIMP BaseCampHostBase::Shutdown() { extensions.Clear(); return S_OK; }
IASREQUESTSTATUS BaseCampHostBase::onSyncRequest(IRequest* pRequest) throw () { // Early return if there aren't any extensions,
if (extensions.IsEmpty()) { return IAS_REQUEST_STATUS_CONTINUE; }
try { IASRequest request(pRequest);
// Convert VSAs to RADIUS format.
filter.radiusFromIAS(request);
// Invoke the extensions.
extensions.Process(ControlBlock(point, request).Get());
// Convert VSAs back to internal format.
filter.radiusToIAS(request); } catch (const _com_error& ce) { IASTraceExcept(); pRequest->SetResponse(IAS_RESPONSE_DISCARD_PACKET, IAS_INTERNAL_ERROR); }
return IAS_REQUEST_STATUS_CONTINUE; }
|