/* * hostapd / RADIUS authentication server * Copyright (c) 2005-2007, Jouni Malinen <j@w1.fi> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * Alternatively, this software may be distributed under the terms of BSD * license. * * See README and COPYING for more details. */ #ifndef RADIUS_SERVER_H #define RADIUS_SERVER_H struct radius_server_data; struct eap_user; struct radius_server_conf { int auth_port; char *client_file; void *conf_ctx; void *eap_sim_db_priv; void *ssl_ctx; u8 *pac_opaque_encr_key; u8 *eap_fast_a_id; size_t eap_fast_a_id_len; char *eap_fast_a_id_info; int eap_fast_prov; int pac_key_lifetime; int pac_key_refresh_time; int eap_sim_aka_result_ind; int tnc; struct wps_context *wps; int ipv6; int (*get_eap_user)(void *ctx, const u8 *identity, size_t identity_len, int phase2, struct eap_user *user); const char *eap_req_id_text; size_t eap_req_id_text_len; }; #ifdef RADIUS_SERVER struct radius_server_data * radius_server_init(struct radius_server_conf *conf); void radius_server_deinit(struct radius_server_data *data); int radius_server_get_mib(struct radius_server_data *data, char *buf, size_t buflen); void radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx); #else /* RADIUS_SERVER */ static inline struct radius_server_data * radius_server_init(struct radius_server_conf *conf) { return NULL; } static inline void radius_server_deinit(struct radius_server_data *data) { } static inline int radius_server_get_mib(struct radius_server_data *data, char *buf, size_t buflen) { return 0; } static inline void radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx) { } #endif /* RADIUS_SERVER */ #endif /* RADIUS_SERVER_H */