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.
 
 
 
 
 
 

63 lines
2.1 KiB

///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) Microsoft Corporation
//
// SYNOPSIS
//
// Declares the class RadiusExtension
//
///////////////////////////////////////////////////////////////////////////////
#ifndef EXTENSION_H
#define EXTENSION_H
#pragma once
#include "authif.h"
// Wrapper around an extension DLL.
class RadiusExtension
{
public:
RadiusExtension() throw ();
~RadiusExtension() throw ();
// Load the extension DLL.
DWORD Load(const wchar_t* dllPath) throw ();
// Process a request.
DWORD Process(RADIUS_EXTENSION_CONTROL_BLOCK* ecb) const throw ();
private:
wchar_t* name; // Module name; used for tracing.
HINSTANCE module; // Module handle.
bool initialized; // Has the module been successfully initialized ?
// DLL entry points.
PRADIUS_EXTENSION_INIT RadiusExtensionInit;
PRADIUS_EXTENSION_TERM RadiusExtensionTerm;
PRADIUS_EXTENSION_PROCESS RadiusExtensionProcess;
PRADIUS_EXTENSION_PROCESS_EX RadiusExtensionProcessEx;
PRADIUS_EXTENSION_FREE_ATTRIBUTES RadiusExtensionFreeAttributes;
PRADIUS_EXTENSION_PROCESS_2 RadiusExtensionProcess2;
// Flags to indicate which actions are allowed by old-style extensions.
static const unsigned acceptAllowed = 0x1;
static const unsigned rejectAllowed = 0x2;
// Functions to create the attribute arrays used by old-style extensions.
static RADIUS_ATTRIBUTE* CreateExtensionAttributes(
RADIUS_EXTENSION_CONTROL_BLOCK* ecb
) throw ();
static RADIUS_ATTRIBUTE* CreateAuthorizationAttributes(
RADIUS_EXTENSION_CONTROL_BLOCK* ecb
) throw ();
// Not implemented.
RadiusExtension(const RadiusExtension&);
RadiusExtension& operator=(const RadiusExtension&);
};
// Helper function to extract just the file name from a path.
const wchar_t* ExtractFileNameFromPath(const wchar_t* path) throw ();
#endif // EXTENSION_H