Home | History | Annotate | Download | only in radius
      1 /*
      2  * hostapd / RADIUS authentication server
      3  * Copyright (c) 2005-2007, Jouni Malinen <j (at) 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 *
     60 radius_server_init(struct radius_server_conf *conf)
     61 {
     62 	return NULL;
     63 }
     64 
     65 static inline void radius_server_deinit(struct radius_server_data *data)
     66 {
     67 }
     68 
     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
     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