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.

177 lines
4.7 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1997, Microsoft Corp. All rights reserved.
  4. //
  5. // FILE
  6. //
  7. // iasinfo.h
  8. //
  9. // SYNOPSIS
  10. //
  11. // This file describes the structs that are placed in shared memory
  12. // to expose server information to the outside world.
  13. //
  14. // MODIFICATION HISTORY
  15. //
  16. // 09/09/1997 Original version.
  17. // 09/08/1998 Conform to latest rev. of ietf draft.
  18. // 02/16/2000 Added proxy counters.
  19. //
  20. ///////////////////////////////////////////////////////////////////////////////
  21. #ifndef _IASINFO_H_
  22. #define _IASINFO_H_
  23. //////////
  24. // Counters that are global to the RADIUS server.
  25. //////////
  26. typedef enum _RadiusServerCounter
  27. {
  28. radiusAuthServTotalInvalidRequests,
  29. radiusAccServTotalInvalidRequests,
  30. NUM_RADIUS_SERVER_COUNTERS
  31. } RadiusServerCounter;
  32. //////////
  33. // Counters that are maintained per RADIUS client.
  34. //////////
  35. typedef enum _RadiusClientCounter
  36. {
  37. radiusAuthServMalformedAccessRequests,
  38. radiusAuthServBadAuthenticators,
  39. radiusAuthServPacketsDropped,
  40. radiusAuthServUnknownType,
  41. radiusAuthServAccessRequests,
  42. radiusAuthServDupAccessRequests,
  43. radiusAuthServAccessAccepts,
  44. radiusAuthServAccessRejects,
  45. radiusAuthServAccessChallenges,
  46. radiusAccServMalformedRequests,
  47. radiusAccServBadAuthenticators,
  48. radiusAccServPacketsDropped,
  49. radiusAccServUnknownType,
  50. radiusAccServRequests,
  51. radiusAccServDupRequests,
  52. radiusAccServNoRecord,
  53. radiusAccServResponses,
  54. NUM_RADIUS_CLIENT_COUNTERS
  55. } RadiusClientCounter;
  56. //////////
  57. // Struct used to represents a single entry in the client table.
  58. //////////
  59. typedef struct _RadiusClientEntry
  60. {
  61. DWORD dwAddress; // Client IP address in network order.
  62. DWORD dwCounters[NUM_RADIUS_CLIENT_COUNTERS];
  63. } RadiusClientEntry;
  64. //////////
  65. // Struct used to represent the server.
  66. //////////
  67. typedef struct _RadiusServerEntry
  68. {
  69. LARGE_INTEGER liStartTime;
  70. LARGE_INTEGER liResetTime;
  71. DWORD dwCounters[NUM_RADIUS_SERVER_COUNTERS];
  72. } RadiusServerEntry;
  73. //////////
  74. // Struct used to represent all shared statistics.
  75. //////////
  76. typedef struct _RadiusStatistics
  77. {
  78. RadiusServerEntry seServer;
  79. DWORD dwNumClients;
  80. RadiusClientEntry ceClients[1];
  81. } RadiusStatistics;
  82. //////////
  83. // Counters that are global to the RADIUS proxy.
  84. //////////
  85. typedef enum _RadiusProxyCounter
  86. {
  87. radiusAuthClientInvalidAddresses,
  88. radiusAccClientInvalidAddresses,
  89. NUM_RADIUS_PROXY_COUNTERS
  90. } RadiusProxyCounter;
  91. //////////
  92. // Counters that are maintained per remote RADIUS server.
  93. //////////
  94. typedef enum _RadiusRemoteServerCounter
  95. {
  96. radiusAuthClientServerPortNumber,
  97. radiusAuthClientRoundTripTime,
  98. radiusAuthClientAccessRequests,
  99. radiusAuthClientAccessRetransmissions,
  100. radiusAuthClientAccessAccepts,
  101. radiusAuthClientAccessRejects,
  102. radiusAuthClientAccessChallenges,
  103. radiusAuthClientUnknownTypes,
  104. radiusAuthClientMalformedAccessResponses,
  105. radiusAuthClientBadAuthenticators,
  106. radiusAuthClientPacketsDropped,
  107. radiusAuthClientTimeouts,
  108. radiusAccClientServerPortNumber,
  109. radiusAccClientRoundTripTime,
  110. radiusAccClientRequests,
  111. radiusAccClientRetransmissions,
  112. radiusAccClientResponses,
  113. radiusAccClientUnknownTypes,
  114. radiusAccClientMalformedResponses,
  115. radiusAccClientBadAuthenticators,
  116. radiusAccClientPacketsDropped,
  117. radiusAccClientTimeouts,
  118. NUM_RADIUS_REMOTE_SERVER_COUNTERS
  119. } RadiusRemoteServerCounter;
  120. //////////
  121. // Struct used to represents a single entry in the remote servers table.
  122. //////////
  123. typedef struct _RadiusRemoteServerEntry
  124. {
  125. DWORD dwAddress; // Server IP address in network order.
  126. DWORD dwCounters[NUM_RADIUS_REMOTE_SERVER_COUNTERS];
  127. } RadiusRemoteServerEntry;
  128. //////////
  129. // Struct used to represent the proxy.
  130. //////////
  131. typedef struct _RadiusProxyEntry
  132. {
  133. DWORD dwCounters[NUM_RADIUS_PROXY_COUNTERS];
  134. } RadiusProxyEntry;
  135. //////////
  136. // Struct used to represent all shared proxy statistics.
  137. //////////
  138. typedef struct _RadiusProxyStatistics
  139. {
  140. RadiusProxyEntry peProxy;
  141. DWORD dwNumRemoteServers;
  142. RadiusRemoteServerEntry rseRemoteServers[1];
  143. } RadiusProxyStatistics;
  144. //////////
  145. // Name of the shared memory mappings.
  146. //////////
  147. #define RadiusStatisticsName L"{A5B99A4C-2959-11D1-BAC8-00C04FC2E20D}"
  148. #define RadiusProxyStatisticsName L"{A5B99A4E-2959-11D1-BAC8-00C04FC2E20D}"
  149. //////////
  150. // Name of the mutex controlling access.
  151. //////////
  152. #define RadiusStatisticsMutex L"{A5B99A4D-2959-11D1-BAC8-00C04FC2E20D}"
  153. #endif // _IASINFO_H_