-typedef enum operation_t {
- INITIATE = 0,
- AUTHENTICATE
-} operation_t;
-
-/*
- * Keep track of which sub modules we've loaded.
- */
-typedef struct eap_types_t {
- struct eap_types_t *next;
- int typeid;
- char typename[NAME_LEN];
- EAP_TYPE *type;
- lt_dlhandle handle;
- CONF_SECTION *cs;
- void *type_stuff;
-} EAP_TYPES;
-
-/*
- * currently this is not properly defined as
- * there is not much config stuff that eap depends on.
- */
-typedef struct eap_conf {
- char* default_eap_type;
- int timer_limit;
-} EAP_CONF;
-
-typedef struct rlm_eap_t {
- EAP_HANDLER *echolist;
- EAP_TYPES *typelist;
- EAP_CONF *conf;
-} rlm_eap_t;
-
-/* define the functions */
-
-/* EAP-Type */
-EAP_TYPES *eaptype_byid(EAP_TYPES **list, int type);
-EAP_TYPES *eaptype_byname(EAP_TYPES **list, const char *name);
-void eaptype_load(EAP_TYPES **tl, const char *tname, CONF_SECTION *cs);
-int eaptype_select(EAP_TYPES *tl, EAP_HANDLER *h, char *eaptype);
-int eaptype_call(int type, operation_t action,
- EAP_TYPES *tl, EAP_HANDLER *h);
-void eaptype_freelist(EAP_TYPES **tl);
-
-
-/* EAP */
-int eap_start(REQUEST *request);
-void eap_fail(REQUEST *request, EAP_PACKET *reply);
-void eap_success(REQUEST *request, EAP_PACKET *reply);
-int eap_validation(eap_packet_t *eap_msg);
-int eap_wireformat(EAP_PACKET *packet);
-int eap_compose(REQUEST *request, EAP_PACKET *reply);
-eap_packet_t *eap_attribute(VALUE_PAIR *vps);
-EAP_DS *eap_buildds(eap_packet_t **eap_msg);
-EAP_HANDLER *eap_handler(EAP_HANDLER **list, eap_packet_t **eap_msg, REQUEST *request);
-char *eap_identity(eap_packet_t *eap_packet);
-VALUE_PAIR *eap_useridentity(EAP_HANDLER *list, eap_packet_t *eap_packet, unsigned char id[]);
-unsigned char *eap_generateid(REQUEST *request, unsigned char response_id);
-unsigned char *eap_regenerateid(REQUEST *request, unsigned char response_id);
-
-/* Memory Management */
-EAP_PACKET *eap_packet_alloc(void);
-EAP_DS *eap_ds_alloc(void);
-EAP_HANDLER *eap_handler_alloc(void);
-void eap_packet_free(EAP_PACKET **eap_packet);
-void eap_ds_free(EAP_DS **eap_ds);
-void eap_handler_free(EAP_HANDLER **handler);
-
-int eaplist_add(EAP_HANDLER **list, EAP_HANDLER *handler);
-void eaplist_clean(EAP_HANDLER **list, time_t limit);
-void eaplist_free(EAP_HANDLER **list);
-EAP_HANDLER *eaplist_isreply(EAP_HANDLER **list, unsigned char id[]);
-EAP_HANDLER *eaplist_findhandler(EAP_HANDLER *list, unsigned char id[]);
-
-/* State */
-void generate_key(void);
-VALUE_PAIR *generate_state(void);
-int verify_state(VALUE_PAIR *state);
-