Lines Matching full:method
2 * EAP peer: Method registration
21 static void eap_peer_method_free(struct eap_method *method);
25 * eap_peer_get_eap_method - Get EAP method based on type number
27 * @method: EAP type number
28 * Returns: Pointer to EAP method or %NULL if not found
31 enum eap_type method) in eap_peer_get_eap_method() argument
35 if (m->vendor == vendor && m->method == method) in eap_peer_get_eap_method()
43 * eap_peer_get_type - Get EAP type for the given EAP method name
44 * @name: EAP method name, e.g., TLS
46 * Returns: EAP method type or %EAP_TYPE_NONE if not found
57 return m->method; in eap_peer_get_type()
66 * eap_get_name - Get EAP method name for the given EAP type
68 * @type: EAP method type
69 * Returns: EAP method name, e.g., TLS, or %NULL if not found
80 if (m->vendor == vendor && m->method == type) in eap_get_name()
181 * eap_peer_method_load - Load a dynamic EAP method library (shared object)
193 wpa_printf(MSG_ERROR, "EAP: Failed to open dynamic EAP method " in eap_peer_method_load()
201 wpa_printf(MSG_ERROR, "EAP: Invalid EAP method '%s' - no " in eap_peer_method_load()
209 wpa_printf(MSG_ERROR, "EAP: Failed to add EAP method '%s' - " in eap_peer_method_load()
215 * dlclose() when the EAP method is unregistered. */ in eap_peer_method_load()
218 wpa_printf(MSG_DEBUG, "EAP: Loaded dynamic EAP method: '%s'", so); in eap_peer_method_load()
225 * eap_peer_method_unload - Unload a dynamic EAP method library (shared object)
226 * @method: Pointer to the dynamically loaded EAP method
230 * loaded with eap_peer_method_load(). Before unloading the method, all
231 * references to the method must be removed to make sure that no dereferences
234 int eap_peer_method_unload(struct eap_method *method) in eap_peer_method_unload() argument
242 if (m == method) in eap_peer_method_unload()
271 * eap_peer_method_alloc - Allocate EAP peer method structure
272 * @version: Version of the EAP peer method interface (set to
275 * @method: EAP type number (EAP_TYPE_*)
276 * @name: Name of the method (e.g., "TLS")
277 * Returns: Allocated EAP method structure or %NULL on failure
283 enum eap_type method, in eap_peer_method_alloc() argument
292 eap->method = method; in eap_peer_method_alloc()
299 * eap_peer_method_free - Free EAP peer method structure
300 * @method: Method structure allocated with eap_peer_method_alloc()
302 static void eap_peer_method_free(struct eap_method *method) in eap_peer_method_free() argument
304 os_free(method); in eap_peer_method_free()
309 * eap_peer_method_register - Register an EAP peer method
310 * @method: EAP method to register from eap_peer_method_alloc()
311 * Returns: 0 on success, -1 on invalid method, or -2 if a matching EAP method
314 * Each EAP peer method needs to call this function to register itself as a
315 * supported EAP method. The caller must not free the allocated method data
318 int eap_peer_method_register(struct eap_method *method) in eap_peer_method_register() argument
322 if (method == NULL || method->name == NULL || in eap_peer_method_register()
323 method->version != EAP_PEER_METHOD_INTERFACE_VERSION) { in eap_peer_method_register()
324 eap_peer_method_free(method); in eap_peer_method_register()
329 if ((m->vendor == method->vendor && in eap_peer_method_register()
330 m->method == method->method) || in eap_peer_method_register()
331 os_strcmp(m->name, method->name) == 0) { in eap_peer_method_register()
332 eap_peer_method_free(method); in eap_peer_method_register()
339 last->next = method; in eap_peer_method_register()
341 eap_methods = method; in eap_peer_method_register()