1/* 2 * EAP peer: Method registration 3 * Copyright (c) 2004-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 EAP_METHODS_H 16#define EAP_METHODS_H 17 18#include "eap_common/eap_defs.h" 19 20const struct eap_method * eap_peer_get_eap_method(int vendor, EapType method); 21const struct eap_method * eap_peer_get_methods(size_t *count); 22 23struct eap_method * eap_peer_method_alloc(int version, int vendor, 24 EapType method, const char *name); 25void eap_peer_method_free(struct eap_method *method); 26int eap_peer_method_register(struct eap_method *method); 27 28 29#ifdef IEEE8021X_EAPOL 30 31EapType eap_peer_get_type(const char *name, int *vendor); 32const char * eap_get_name(int vendor, EapType type); 33size_t eap_get_names(char *buf, size_t buflen); 34char ** eap_get_names_as_string_array(size_t *num); 35int eap_peer_register_methods(void); 36void eap_peer_unregister_methods(void); 37 38#else /* IEEE8021X_EAPOL */ 39 40static inline EapType eap_peer_get_type(const char *name, int *vendor) 41{ 42 *vendor = EAP_VENDOR_IETF; 43 return EAP_TYPE_NONE; 44} 45 46static inline const char * eap_get_name(int vendor, EapType type) 47{ 48 return NULL; 49} 50 51static inline size_t eap_get_names(char *buf, size_t buflen) 52{ 53 return 0; 54} 55 56static inline int eap_peer_register_methods(void) 57{ 58 return 0; 59} 60 61static inline void eap_peer_unregister_methods(void) 62{ 63} 64 65static inline char ** eap_get_names_as_string_array(size_t *num) 66{ 67 return NULL; 68} 69 70#endif /* IEEE8021X_EAPOL */ 71 72 73#ifdef CONFIG_DYNAMIC_EAP_METHODS 74 75int eap_peer_method_load(const char *so); 76int eap_peer_method_unload(struct eap_method *method); 77 78#else /* CONFIG_DYNAMIC_EAP_METHODS */ 79 80static inline int eap_peer_method_load(const char *so) 81{ 82 return 0; 83} 84 85static inline int eap_peer_method_unload(struct eap_method *method) 86{ 87 return 0; 88} 89 90#endif /* CONFIG_DYNAMIC_EAP_METHODS */ 91 92#endif /* EAP_METHODS_H */ 93