Annotation of embedaddon/strongswan/src/libcharon/plugins/eap_radius/eap_radius_provider.h, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright (C) 2018 Tobias Brunner
3: * HSR Hochschule fuer Technik Rapperswil
4: *
5: * Copyright (C) 2013 Martin Willi
6: * Copyright (C) 2013 revosec AG
7: *
8: * This program is free software; you can redistribute it and/or modify it
9: * under the terms of the GNU General Public License as published by the
10: * Free Software Foundation; either version 2 of the License, or (at your
11: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
12: *
13: * This program is distributed in the hope that it will be useful, but
14: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16: * for more details.
17: */
18:
19: /**
20: * @defgroup eap_radius_provider eap_radius_provider
21: * @{ @ingroup eap_radius
22: */
23:
24: #ifndef EAP_RADIUS_PROVIDER_H_
25: #define EAP_RADIUS_PROVIDER_H_
26:
27: #include <attributes/attributes.h>
28: #include <attributes/attribute_provider.h>
29:
30: typedef struct eap_radius_provider_t eap_radius_provider_t;
31:
32: /**
33: * IKE configuration attribute fed by RADIUS attributes
34: */
35: struct eap_radius_provider_t {
36:
37: /**
38: * Implements attribute_provider_t
39: */
40: attribute_provider_t provider;
41:
42: /**
43: * Add a received Framed-IP-Address to the provider to serve to client.
44: *
45: * @param id IKE_SA unique identifier
46: * @param ip IP address received from RADIUS server, gets owned
47: */
48: void (*add_framed_ip)(eap_radius_provider_t *this, uint32_t id,
49: host_t *ip);
50:
51: /**
52: * Add a configuration attribute received from RADIUS to forward.
53: *
54: * @param id IKE_SA unique identifier
55: * @param type attribute type
56: * @param data attribute data
57: */
58: void (*add_attribute)(eap_radius_provider_t *this, uint32_t id,
59: configuration_attribute_type_t type, chunk_t data);
60:
61: /**
62: * Clears any unclaimed IP addresses and attributes for the given IKE_SA.
63: *
64: * @param id IKE_SA unique identifier
65: * @return enumerator over unclaimed IP addresses, if any
66: */
67: enumerator_t *(*clear_unclaimed)(eap_radius_provider_t *this, uint32_t id);
68:
69: /**
70: * Destroy a eap_radius_provider_t.
71: */
72: void (*destroy)(eap_radius_provider_t *this);
73: };
74:
75: /**
76: * Create a eap_radius_provider instance.
77: */
78: eap_radius_provider_t *eap_radius_provider_create();
79:
80: /**
81: * Get singleton instance previously created with eap_radius_provider_create().
82: */
83: eap_radius_provider_t *eap_radius_provider_get();
84:
85: #endif /** EAP_RADIUS_PROVIDER_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>