Source code of Windows XP (NT5)
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.
|
|
//#--------------------------------------------------------------
//
// File: recvfrompipe
//
// Synopsis: This file holds the declarations of the
// CRecvFromPipe class
//
//
// History: 10/22/97 MKarki Created
//
// Copyright (C) 1997-98 Microsoft Corporation
// All rights reserved.
//
//----------------------------------------------------------------
#ifndef _RECVFROMPIPE_H_
#define _RECVFROMPIPE_H_
#include "vsafilter.h"
#include "packetradius.h"
#include "clients.h"
#include "tunnelpassword.h"
#include "reportevent.h"
class CPreProcessor;
class CRecvFromPipe {
public: //
// processess the outbound RADIUS packet received from the
// pipeline
//
HRESULT Process ( /*[in]*/ IRequest *pIRequest ); //
// constructor
//
CRecvFromPipe( /*[in]*/ CPreProcessor *pCPreProcessor, /*[in]*/ CHashMD5 *pCHashMD5, /*[in]*/ CHashHmacMD5 *pCHashHmacMD5, /*[in]*/ CClients *pCClients, /*[in]*/ VSAFilter *pCVSAFilter, /*[in]*/ CTunnelPassword *pCTunnelPassword, /*[in]*/ CReportEvent *pCReportEvent );
//
// destructor
//
virtual ~CRecvFromPipe();
private:
HRESULT GeneratePacketRadius ( /*[out]*/ CPacketRadius **ppCPacketRadius, /*[in]*/ IAttributesRaw *pIAttributesRaw );
HRESULT GetOutPacketInfo ( /*[out]*/ PDWORD pdwIPAddress, /*[out]*/ PWORD pwPort, /*[out]*/ IIasClient **ppClient, /*[out]*/ PBYTE pPacketHeader, /*[in]*/ IAttributesRaw *pIAttributesRaw );
HRESULT InjectSignatureIfNeeded ( /*[in]*/ PACKETTYPE ePacketType, /*[in]*/ IAttributesRaw *pIAttributesRaw, /*[in]*/ CPacketRadius *pCPacketRadius );
//
// converts the IAS response code to RADIUS packet type
//
HRESULT ConvertResponseToRadiusCode ( LONG iasResponse, PPACKETTYPE pPacketType, CPacketRadius *pCPacketRadius ); //
// split the specific attribute into multiple ones that
// can fit in a packet
//
HRESULT SplitAndAdd ( /*[in]*/ IAttributesRaw *pIAttributesRaw, /*[in]*/ PIASATTRIBUTE pIasAttribute, /*[in]*/ IASTYPE iasType, /*[in]*/ DWORD dwAttributeLength, /*[in]*/ DWORD dwMaxLength );
//
// carries out splitting of attributes if required
//
HRESULT SplitAttributes ( /*[in]*/ IAttributesRaw *pIAttributesRaw );
//
// converts IAS reason code to RADIUS error codes
//
HRESULT CRecvFromPipe::ConvertReasonToRadiusError ( /*[in]*/ LONG iasReason, /*[out]*/ PRADIUSLOGTYPE pRadError ); CPreProcessor *m_pCPreProcessor;
CHashMD5 *m_pCHashMD5;
CHashHmacMD5 *m_pCHashHmacMD5;
CClients *m_pCClients;
VSAFilter *m_pCVSAFilter;
CTunnelPassword *m_pCTunnelPassword;
CReportEvent *m_pCReportEvent;
};
#endif // ifndef _RECVFROMPIPE_H_
|