wpa_supplicant / hostapd  2.5
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
radius_client.h
Go to the documentation of this file.
1 
5 #ifndef RADIUS_CLIENT_H
6 #define RADIUS_CLIENT_H
7 
8 #include "ip_addr.h"
9 
10 struct radius_msg;
11 
30 
35  int port;
36 
42 
48 
49  /* Dynamic (not from configuration file) MIB data */
50 
55  int index;
56 
62 
67  u32 requests;
68 
74 
80 
86 
92 
97  u32 responses;
98 
104 
110 
115  u32 timeouts;
116 
122 
128 };
129 
140 
146 
152 
158 
164 
170 
183 
189 
195 
201 };
202 
203 
208 typedef enum {
211 
217 
227 } RadiusType;
228 
233 typedef enum {
241 
251 
257 
264 
265 struct radius_client_data;
266 
267 int radius_client_register(struct radius_client_data *radius,
268  RadiusType msg_type,
269  RadiusRxResult (*handler)
270  (struct radius_msg *msg, struct radius_msg *req,
271  const u8 *shared_secret, size_t shared_secret_len,
272  void *data),
273  void *data);
274 int radius_client_send(struct radius_client_data *radius,
275  struct radius_msg *msg,
276  RadiusType msg_type, const u8 *addr);
277 u8 radius_client_get_id(struct radius_client_data *radius);
278 void radius_client_flush(struct radius_client_data *radius, int only_auth);
279 struct radius_client_data *
281 void radius_client_deinit(struct radius_client_data *radius);
282 void radius_client_flush_auth(struct radius_client_data *radius,
283  const u8 *addr);
284 int radius_client_get_mib(struct radius_client_data *radius, char *buf,
285  size_t buflen);
286 void radius_client_reconfig(struct radius_client_data *radius,
287  struct hostapd_radius_servers *conf);
288 
289 #endif /* RADIUS_CLIENT_H */
RADIUS message structure for new and parsed messages.
Definition: radius.c:18
u32 packets_dropped
radiusAuthClientPacketsDropped or radiusAccClientPacketsDropped
Definition: radius_client.h:127
RADIUS servers for RADIUS client.
Definition: radius_client.h:134
RadiusType
RADIUS server type for RADIUS client.
Definition: radius_client.h:208
int num_auth_servers
Number of auth_servers entries.
Definition: radius_client.h:145
void * ctx
Context pointer for hostapd_logger() callbacks.
Definition: radius_client.c:176
Definition: ip_addr.h:8
Message has invalid Authenticator.
Definition: radius_client.h:262
RADIUS interim accounting message.
Definition: radius_client.h:226
struct hostapd_ip_addr client_addr
Client (local) address to use if force_client_addr.
Definition: radius_client.h:194
RadiusRxResult
RADIUS client RX handler result.
Definition: radius_client.h:233
u8 * shared_secret
Shared secret for authenticating RADIUS messages.
Definition: radius_client.h:41
struct hostapd_ip_addr addr
radiusAuthServerAddress or radiusAccServerAddress
Definition: radius_client.h:29
RADIUS accounting.
Definition: radius_client.h:216
u32 bad_authenticators
radiusAuthClientBadAuthenticators or radiusAccClientBadAuthenticators
Definition: radius_client.h:109
u32 responses
radiusAccClientResponses
Definition: radius_client.h:97
u8 radius_client_get_id(struct radius_client_data *radius)
Get an identifier for a new RADIUS message.
Definition: radius_client.c:942
int round_trip_time
radiusAuthClientRoundTripTime or radiusAccClientRoundTripTime Round-trip time in hundredths of a seco...
Definition: radius_client.h:61
void radius_client_flush_auth(struct radius_client_data *radius, const u8 *addr)
Flush pending RADIUS messages for an address.
Definition: radius_client.c:1483
u32 retransmissions
radiusAuthClientAccessRetransmissions or radiusAccClientRetransmissions
Definition: radius_client.h:73
u32 access_accepts
radiusAuthClientAccessAccepts
Definition: radius_client.h:79
int radius_client_register(struct radius_client_data *radius, RadiusType msg_type, RadiusRxResult(*handler)(struct radius_msg *msg, struct radius_msg *req, const u8 *shared_secret, size_t shared_secret_len, void *data), void *data)
Register a RADIUS client RX handler.
Definition: radius_client.c:298
u32 unknown_types
radiusAuthClientUnknownTypes or radiusAccClientUnknownTypes
Definition: radius_client.h:121
u32 timeouts
radiusAuthClientTimeouts or radiusAccClientTimeouts
Definition: radius_client.h:115
int num_acct_servers
Number of acct_servers entries.
Definition: radius_client.h:163
int force_client_addr
Whether to force client (local) address.
Definition: radius_client.h:200
RADIUS server information for RADIUS client.
Definition: radius_client.h:24
int radius_client_get_mib(struct radius_client_data *radius, char *buf, size_t buflen)
Get RADIUS client MIB information.
Definition: radius_client.c:1619
int msg_dumps
Whether RADIUS message details are shown in stdout.
Definition: radius_client.h:188
size_t shared_secret_len
Length of shared_secret in octets.
Definition: radius_client.h:47
struct radius_client_data * radius_client_init(void *ctx, struct hostapd_radius_servers *conf)
Initialize RADIUS client.
Definition: radius_client.c:1419
RADIUS authentication.
Definition: radius_client.h:210
Message has been queued.
Definition: radius_client.h:250
int index
radiusAuthServerIndex or radiusAccServerIndex
Definition: radius_client.h:55
struct hostapd_radius_server * acct_servers
RADIUS Accounting servers in priority order.
Definition: radius_client.h:157
u32 access_challenges
radiusAuthClientAccessChallenges
Definition: radius_client.h:91
int radius_client_send(struct radius_client_data *radius, struct radius_msg *msg, RadiusType msg_type, const u8 *addr)
Send a RADIUS request.
Definition: radius_client.c:715
void radius_client_deinit(struct radius_client_data *radius)
Deinitialize RADIUS client.
Definition: radius_client.c:1456
Message processed.
Definition: radius_client.h:240
struct hostapd_radius_server * auth_server
The current Authentication server.
Definition: radius_client.h:151
struct hostapd_radius_server * acct_server
The current Accounting server.
Definition: radius_client.h:169
int retry_primary_interval
Retry interval for trying primary server.
Definition: radius_client.h:182
int port
radiusAuthClientServerPortNumber or radiusAccClientServerPortNumber
Definition: radius_client.h:35
Internal RADIUS client data.
Definition: radius_client.c:171
struct hostapd_radius_server * auth_servers
RADIUS Authentication servers in priority order.
Definition: radius_client.h:139
void radius_client_flush(struct radius_client_data *radius, int only_auth)
Flush all pending RADIUS client messages.
Definition: radius_client.c:982
u32 access_rejects
radiusAuthClientAccessRejects
Definition: radius_client.h:85
Message is not for this handler.
Definition: radius_client.h:256
u32 requests
radiusAuthClientAccessRequests or radiusAccClientRequests
Definition: radius_client.h:67
IP address processing.
u32 malformed_responses
radiusAuthClientMalformedAccessResponses or radiusAccClientMalformedResponses
Definition: radius_client.h:103
struct hostapd_radius_servers * conf
RADIUS client configuration (list of RADIUS servers to use)
Definition: radius_client.c:182