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.
 
 
 
 
 
 

56 lines
1.3 KiB

///////////////////////////////////////////////////////////////////////////////
//
// 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;
}