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

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) Microsoft Corporation
  4. //
  5. // SYNOPSIS
  6. //
  7. // Declares the class RadiusExtensionPoint
  8. //
  9. ///////////////////////////////////////////////////////////////////////////////
  10. #ifndef EXTENSIONPOINT_H
  11. #define EXTENSIONPOINT_H
  12. #pragma once
  13. #include "authif.h"
  14. class RadiusExtension;
  15. class RadiusExtensionPoint
  16. {
  17. public:
  18. RadiusExtensionPoint() throw ();
  19. ~RadiusExtensionPoint() throw ();
  20. // Returns true if no extensions are registered for this point.
  21. bool IsEmpty() const throw ();
  22. // Loads the specified extension DLLs.
  23. DWORD Load(RADIUS_EXTENSION_POINT whichDlls) throw ();
  24. // Process a request.
  25. void Process(RADIUS_EXTENSION_CONTROL_BLOCK* ecb) const throw ();
  26. // Unloads the extension DLLs.
  27. void Clear() throw ();
  28. private:
  29. // Determines if an extension should only be loaded under NT4.
  30. static bool IsNT4Only(const wchar_t* path) throw ();
  31. const wchar_t* name;
  32. RadiusExtension* begin;
  33. RadiusExtension* end;
  34. // Not implemented.
  35. RadiusExtensionPoint(const RadiusExtensionPoint&);
  36. RadiusExtensionPoint& operator=(const RadiusExtensionPoint&);
  37. };
  38. inline bool RadiusExtensionPoint::IsEmpty() const throw ()
  39. {
  40. return begin == end;
  41. }
  42. #endif // EXTENSIONPOINT_H