1 /*
2 * hostapd / RADIUS authentication server
3 * Copyright (c) 2005-2007, Jouni Malinen <j@w1.fi>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * Alternatively, this software may be distributed under the terms of BSD
10 * license.
11 *
12 * See README and COPYING for more details.
13 */
14
15 #ifndef RADIUS_SERVER_H
16 #define RADIUS_SERVER_H
17
18 struct radius_server_data;
19 struct eap_user;
20
21 struct radius_server_conf {
22 int auth_port;
23 char *client_file;
24 void *conf_ctx;
25 void *eap_sim_db_priv;
26 void *ssl_ctx;
27 u8 *pac_opaque_encr_key;
28 u8 *eap_fast_a_id;
29 size_t eap_fast_a_id_len;
30 char *eap_fast_a_id_info;
31 int eap_fast_prov;
32 int pac_key_lifetime;
33 int pac_key_refresh_time;
34 int eap_sim_aka_result_ind;
35 int tnc;
36 struct wps_context *wps;
37 int ipv6;
38 int (*get_eap_user)(void *ctx, const u8 *identity, size_t identity_len,
39 int phase2, struct eap_user *user);
40 const char *eap_req_id_text;
41 size_t eap_req_id_text_len;
42 };
43
44
45 #ifdef RADIUS_SERVER
46
47 struct radius_server_data *
48 radius_server_init(struct radius_server_conf *conf);
49
50 void radius_server_deinit(struct radius_server_data *data);
51
52 int radius_server_get_mib(struct radius_server_data *data, char *buf,
53 size_t buflen);
54
55 void radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx);
56
57 #else /* RADIUS_SERVER */
58
59 static inline struct radius_server_data *
radius_server_init(struct radius_server_conf * conf)60 radius_server_init(struct radius_server_conf *conf)
61 {
62 return NULL;
63 }
64
radius_server_deinit(struct radius_server_data * data)65 static inline void radius_server_deinit(struct radius_server_data *data)
66 {
67 }
68
radius_server_get_mib(struct radius_server_data * data,char * buf,size_t buflen)69 static inline int radius_server_get_mib(struct radius_server_data *data,
70 char *buf, size_t buflen)
71 {
72 return 0;
73 }
74
75 static inline void
radius_server_eap_pending_cb(struct radius_server_data * data,void * ctx)76 radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx)
77 {
78 }
79
80 #endif /* RADIUS_SERVER */
81
82 #endif /* RADIUS_SERVER_H */
83